在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
变量,以确保多线程环境下的正确性。