Не решайте окончательную переменную внутри Java 8 Stream

Есть ли способ конвертировать следующий код в Java 8 Stream.

    final List ret = new ArrayList(values.size());
    double tmp = startPrice;
    for (final Iterator it = values.iterator(); it.hasNext();) {
      final DiscountValue discountValue = ((DiscountValue) it.next()).apply(quantity, tmp, digits, currencyIsoCode);
      tmp -= discountValue.getAppliedValue();
      ret.add(discountValue);
    }

Потоки Java 8 жалуются на отсутствие окончательной переменной tmp? Есть ли способ решить такие ситуации?

Локальная переменная tmp, определенная во включающей области видимости, должна быть окончательной или фактически конечной

Ответы на вопрос(1)

Ваш ответ на вопрос