代码改变世界

Effective Java 04 Enforce noninstantiability with a private constructor

2014-02-26 22:33  小郝(Kaibo Hao)  阅读(486)  评论(0编辑  收藏  举报

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

}

Advantage

This explicitly prevents the user to instantiate the class.

Disadvantage

The class cannot be subclassed.