我们在写代码过程中,常常会定义一些工具类,这些类的所有方法都是静态的,所以这些类的实例化是没有必要的,那么如何保证这些类不被实例化呢
- 方法1:将该类定义成抽象类
这种方式虽然能避免该类不能被创建实例,但是他的子类可以创建对象 - 方法2:将该类的构造方法私有化
这种方式正常情况下,不能new对象,但是,可以通过java反射,来创建对象,所以该方式也不可行 - 方式3:在方法2的基础上,在私有构造方法中,抛出异常
public class UntilityClass {
private UntilityClass() {
throw new AssertionError();
}
}