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