EJ.04 通过私有构造器强化不可实例化的能力

  • 只包含静态方法和静态域的工具类,实例没有任何意义。
  • 缺少显式构造器时,编译器会自动提供一个公有的、无参的缺省构造器。
  • 将构造器私有化,则无法被实例化,也不能子类化:
// Noninstantiable utility class
public class UtilityClass {
    // Suppress default constructor for noninstantiability
    private UtilityClass() {
        throw new AssertionError();
    }
    
    ...  // Remainder omitted
}
 

你可能感兴趣的:(构造器)