这里使用的@ThreadSafe和@Recommend是我个人自定义的注解,表示线程安全和推荐使用
package com.zr.concurrency.test.safe.singleton;
import com.zr.concurrency.annotation.Recommend;
import com.zr.concurrency.annotation.ThreadSafe;
@ThreadSafe
@Recommend
public class SingletonByEnum {
private SingletonByEnum(){
}
public static SingletonByEnum getInstance(){
return Singleton.INSTANCE.getInstance();
}
private enum Singleton{
INSTANCE;
private SingletonByEnum singletonByEnum;
Singleton(){
singletonByEnum=new SingletonByEnum();
}
public SingletonByEnum getInstance(){
return singletonByEnum;
}
}
}