【讀書筆記 - Effective Java】04. 經過私有構造器強化不可實例化的能力

工具類(utility class)不但願被實例化,好比只包含靜態方法和靜態域的類。爲了這個目的,須要讓這個類包含一個私有構造器工具

// 私有構造器示例
public class UtilityClass {
    // 爲該類不能被實例化、子類化添上註釋
    private UtilityClass() {
        // 避免不當心在類的內部調用構造器
        throw new AssertionError();
    }
}

 

其餘不可行方法和理由:spa

1. 將類寫成抽象類:可被子類化,甚至誤導用戶子去繼承這個類。code

2. 不寫構造方法:類不包含顯式的構造器時,編譯器會生成缺省的構造器。blog

相關文章
相關標籤/搜索