1
次のコードをJava 8 Streamに変換する方法はありますか?Java 8ストリーム内で最終変数を解決しない
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:raw * 'Iterator'ではなくgenericsを使用します。なぜ 'values'は生の' Collection'であり、一般的なCollectionではありませんか? –
Andreas
強化されたforループは、ここでより意味をなさないでしょう。 – khelwood
実際これは非常に古いコードです。私は最新のJavaバージョンを使用して10年前に書かれたパッケージ全体をリファクタリングしています。提案のおかげで、確かにそれを行います。 –