在Java中,要在匿名內部類中實現單例模式,可以使用靜態初始化器和雙重檢查鎖定(Double-Checked Locking)。這里是一個示例:
public class Singleton {
private static volatile Singleton instance;
private Singleton() {
// 私有構造函數,防止外部實例化
}
public static Singleton getInstance() {
if (instance == null) {
synchronized (Singleton.class) {
if (instance == null) {
instance = new Singleton() {
// 匿名內部類實現
};
}
}
}
return instance;
}
}
在這個示例中,我們使用了雙重檢查鎖定來確保getInstance()
方法的線程安全。當第一次調用getInstance()
時,會創建一個匿名內部類實例并將其賦值給instance
變量。后續的調用將直接返回已創建的實例。
注意,我們使用了volatile
關鍵字來修飾instance
變量,以確保多線程環境下的正確性。