A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://github.com/pmd/pmd/issues/816 below:

[java] SingleMethodSingleton false positives with inner classes · Issue #816 · pmd/pmd · GitHub

Affects PMD Version: 6.0.0

Rule: SingleMethodSingleton

Description: SingleMethodSingleton uses a single Set to determine if any duplication happened. But while traversing the AST multiple classes may be visited. I think that needs to be a Map<Class, Method>. (Also it should only warn for static methods.)

Code Sample demonstrating the issue:

// real example that triggered this report
final class Outer {
  private static final Outer INSTANCE = new Outer();
  private Outer() {}
  static Outer getInstance() { return INSTANCE; }

  static class Factory {
    private static final Factory FACTORY = new Factory();
    private Factory() { }
    static Factory getInstance() { return FACTORY; }
  }
}

// another possible scenario
final class Siblings {
  static class Inner1 {
    static Inner1 getInstance() { return null; }
  }
  static class Inner2 {
    static Inner2 getInstance() { return null; }
  }
}

Outer.java | 4 | Class contains multiple getInstance methods. Please review.
Outer.java | 9 | Class contains multiple getInstance methods. Please review.
Siblings.java | 3 | Class contains multiple getInstance methods. Please review.
Siblings.java | 6 | Class contains multiple getInstance methods. Please review.

Running PMD through: [CLI | Ant | Maven | Gradle | Designer | Other]: Gradle


RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4