java声明公共构造函数_公用的工具类不应该有公共的构造函数

Sonarlint检测出如下问题:

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.

公用的工具类不应该有公共的构造函数

公用的工具类是静态成员的集合,并不意味着要实例化。甚至扩展的抽象工具程序类也不应该有公共构造函数。

Java会向不定义构造函数的每个类添加隐式的公共构造函数。因此,应该定义至少一个非公共构造函数。

错误代码示例:

class StringUtils { //Noncompliant

public staticString concatenate(String s1, String s2) {return s1 +s2;

}

}

正确代码示例:

class StringUtils { //Compliant

privateStringUtils() {throw new IllegalStateException("Utility class");

}public staticString concatenate(String s1, String s2) {return s1 +s2;

}

}

例外情况:

当类包含 public static void main(String[] args) 方法时,它不被视为工具类类,并且将被该规则忽略。

原文:https://www.cnblogs.com/acm-bingzi/p/java-private-constructor.html

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值