add a private constructor to hide the implicit public one(Utility classes should not have public ...

sonarlint提示add a private constructor to hide the implicit public oneide

Utility classes should not have public constructors函数

Utility classes, which are collections of static members, are not meant to be instantiated. Even abstract utility classes, which can be extended, should not have public constructors. Java adds an implicit public constructor to every class which does not define at least one explicitly. Hence, at least one non-public constructor should be defined. Noncompliant Code Example class StringUtils { // Noncompliant

  public static String concatenate(String s1, String s2) { return s1 + s2; } } Compliant Solution class StringUtils { // Compliant

  private StringUtils() { throw new IllegalStateException("Utility class"); } public static String concatenate(String s1, String s2) { return s1 + s2; } } Exceptions When class contains public static void main(String[] args) method it is not considered as utility class and will be ignored by this rule.

 

意思是util类里面都是静态方法,不会去初始化这个类,因此不该该暴露一个public构造函数this

解决方案:spa

     定义一个private构造函数code

相关文章
相关标签/搜索