对于只使用静态实用方法且没有实例变量(完全无状态)的类,添加私有无参数构造函数(无效)是一种正确/推荐的做法吗?
我的理由是,我想避免任何使用此类的客户端通过实例化它,并且总是希望以静态方式访问此类的方法。私有构造函数帮助我在我的实用程序类中添加此限制。
我也将我的静态类定义为final,以避免任何客户端扩展它们;这是一种正确的做法吗?
答案 0 :(得分:0)
是的。 为了确保没有人实例化,最好的做法是定义一个私有的无参数构造函数,该构造函数抛出IllegalStateException。 例如,对于StringUtils类,我将定义以下构造函数:
private StringUtils() {
throw new IllegalStateException("StringUtils class");
}