Menu

#1428 UC_USELESS_OBJECT false positive for collection using forEach(...)

3.0.2
closed-duplicate
None
5
2015-12-26
2015-12-03
No

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();
        }
    }
}

Discussion

  • Tagir Valeev

    Tagir Valeev - 2015-12-26

    Duplicate of [bugs:#1373] (already fixed in trunc)

     

    Related

    Bugs: #1373


    Last edit: Tagir Valeev 2015-12-26
  • Tagir Valeev

    Tagir Valeev - 2015-12-26
    • status: open --> closed-duplicate
    • assigned_to: Tagir Valeev
    • Group: 3.x --> 3.0.2
     

Log in to post a comment.

MongoDB Logo MongoDB