我總是有我的變量重新分配給標記爲final
另一個變量:如何使用lambda而不將變量重新分配給最終變量?
public void method(int myvar) {
myvar = myvar + 1;
doSomething(myvar); //I need to change myvar before the lambda
final int newvar = myvar; //this line is stupid
//could be something like:
//makefinal myvar;
open(con -> {
doOtherThing(newVar);
});
}
將是非常巨大的,如果有另一種方式來聲明,我的變量不會在open
調用之前可以更改。
可以說我需要在'open'之前執行'myvar + 1' – melanke
在這種情況下,您應該使用其他變量,原因與上述相同。 lambda表達式只能使用'final'變量。 – Paul
如果我可以用特定的方式標記myvar來告訴它在'open'之前是最終的,而不是分配給另一個變量 – melanke