Non-constructor methods should not have the same name as the enclosing class

  • squid : S1223

Having a class and some of its methods sharing the same name is misleading, and leaves others to wonder whether it was done that way on purpose, or was the methods supposed to be a constructor.

Noncompliant Code Example

class Foo {
  public Foo() {...}
  public int Foo(String label) {...} // Noncompliant
}

Compliant Solution

class Foo {
  public Foo() {...}
  public int foo(String label) {...} // Compliant
}

Close