mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-01-04 08:51:02 +07:00
lambda: effectively final parameters: copy in final variable if needed - never make implicitly final
This commit is contained in:
@@ -90,4 +90,28 @@ class Sample {
|
||||
runnable.run(); // prints 111
|
||||
runnable2.run(); // prints 444
|
||||
}
|
||||
}
|
||||
|
||||
class ParameterIsEffectivelyFinal {
|
||||
{
|
||||
Comparable<String> c = o->{
|
||||
new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
System.out.println(o);
|
||||
}
|
||||
}.run();
|
||||
return 0;
|
||||
};
|
||||
Comparable<String> c1 = o->{
|
||||
o = "";
|
||||
new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
System.out.println(<error descr="Variable 'o' is accessed from within inner class. Needs to be declared final.">o</error>);
|
||||
}
|
||||
}.run();
|
||||
return 0;
|
||||
};
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user