java lambda foreach更新值非最终变量



我想更新金额值,但它需要是最终

int amount = 0;
// update value somewhere
amount = 12;
txs.forEach(p -> {
p.setAmount(amount);
});

如何更新所有具有相同值的tx?

你可以这样做

int amount = 0;
// update value somewhere
amount = 12;
// add this
final int final_amount = amount ;
txs.forEach(p -> {
p.setAmount(final_amount);
});

一个简单的方法:创建一个类似的临时变量:

int amount = 0;
// update value somewhere
amount = 12;
final int myFinalVariable = amount;
txs.forEach(p -> p.setAmount(myFinalVariable));

最新更新