工具类不应该有公有的构造函数
工具类是一系列静态成员或方法的集合,意味着它不可以被实例化,即使是抽象的工具类,它可以被继承,但也不可以有公有的构造函数。
Java类如果没有声明构造函数,则会默认有一个公有的构造函数,因此需要给工具类至少声明一个非公有的构造函数。
不符合要求的代码示例
class StringUtils { // Noncompliant
public static String concatenate(String s1, String s2) {
return s1 + s2;
}
}
解决方案
class StringUtils { // Compliant
private StringUtils() {
}
public static String concatenate(String s1, String s2) {
return s1 + s2;
}
}