Attempting to enforce noninstantiability by making a class abstract does
not work.
A default constructor is generated only if a class contains no explicit constructors,
so a class can be made noninstantiable by including a private constructor:
// Noninstantiable utility class
public class UtilityClass {
// Suppress default constructor for noninstantiability
private UtilityClass() {
throw new AssertionError();
}
... // Remainder omitted
}
댓글 없음:
댓글 쓰기