枚舉公条,如果涉及到反序列化創(chuàng)建對象時推薦使用枚舉的方式來實現(xiàn)單例,因為Enum能防止反序列化時重新創(chuàng)建新的對象。本文介紹 Enum 的使用方式迂曲。
public enum SingletonEnum{
INSTANCE;
}
通過SingletonEnum.INSTANCE來訪問實例,使用方式很簡單. 然而就這么簡單的話也沒有更多意義,具體的使用方式如下
public enum SingletonEnum {
INSTANCE;
int value;
// 這里我們可以自定義構(gòu)造函數(shù).
private SingletonEnum() {
value = 1;
System.out.println("INSTANCE now created!");
}
public int getValue() {
return value;
}
public void setValue(int value) {
this.value = value;
}
}
調(diào)用:
System.out.println("start get instance!"); SingletonEnum singleton = SingletonEnum.INSTANCE; System.out.println(singleton.getValue()); singleton.setValue(2); System.out.println(singleton.getValue());