《Effective java》--创建和销毁对象 4.通过私有构造器强化不可实例化的能力

 有时候,你可能需要编写只包含静态方法和静态域的类,这样的类不希望被实例化,

public class UtilityClass{

    //Suppress default constructor for noninstanceuability

    private UtilityClass(){

        throw new AssertionError();

    }

}

AssertionError不是必须的,但是它可以避免不小心在类的内部调用构造器,他保证该类在任何情况下都不能被实例化。

劣势:它使得一个类不能被子类化。

你可能感兴趣的:(《Effective java》--创建和销毁对象 4.通过私有构造器强化不可实例化的能力)