The two functions uselessObjectError1() and uselessObjectError2() produces false "Useless object" warnings, but the functionally equivalent uselessObjectWorkaround() doesn't.
public class TestFingBugsError {
private void foo() {
System.out.println("side effect");
}
public void uselessObjectError1() {
final Collection<Runnable> runnables = new ArrayList<>();
runnables.add(this::foo);
runnables.forEach(Runnable::run);
}
public void uselessObjectError2() {
final Collection<Runnable> runnables = new ArrayList<>();
runnables.add(this::foo);
runnables.forEach(r -> r.run());
}
public void uselessObjectWorkaround() {
final Collection<Runnable> runnables = new ArrayList<>();
runnables.add(this::foo);
for (final Runnable r : runnables) {
r.run();
}
}
}
Duplicate of [bugs:#1373] (already fixed in trunc)
Related
Bugs:
#1373Last edit: Tagir Valeev 2015-12-26