Reports methods that are named identically to their class.

While such naming is allowed by the Java language, it's usually a mistake, as it was intended to create a constructor. Such naming is bad practice.

Example:


  class MyClass {
    int val;

    // Method MyClass named identically to its containing class.
    // Likely, 'void' was added by mistake.
    void MyClass(int val) {
      this.val = val;
    }
  }

When appropriate, a quick-fix converts the method to a constructor:


  class MyClass {
    int val;

    MyClass(int val) {
      this.val = val;
    }
  }

Another quick-fix renames the method.