文章目录
还在手写DoubleCheck创建单例对象吗
public class SomeSingleClass {
private static volatile SomeSingleClass INSTANCE = null;
private SomeSingleClass() {
// some logic...
}
public static SomeSingleClass getInstance() {
if (INSTANCE == null) {
synchronized (SomeSingleClass.class) {
if (INSTANCE == null) {
INSTANCE = new SomeSingleClass();
}
}
}
return INSTANCE;
}
}
不妨直接使用Spring提供好的轮子
public class SomeSingleClass {
private static final SingletonSupplier<SomeSingleClass> supplier = new SingletonSupplier<>(null, SomeSingleClass::new);
private SomeSingleClass() {
// some logic...
}
public static SomeSingleClass getInstance() {
return supplier.get();
}
}