枚举有利于创建单身人士.我知道枚举方法不是线程安全的,所以我试着让它成为线程安全的.任何人都可以确认这种实施是否正确.是否可以使用静态和易失性这么多地方并且可以进行优化?由于内部类是私有的,因此我必须在枚举中创建函数以访问内部类功能.可以优化吗?
import java.util.Date;
public enum SingletonWithEnum {
INSTANCE;
private static class Singleton{
private static volatile int count;
private static volatile Date date;
public static int getCount() { return count;}
public static void setCount(int countParam) { synchronized(Singleton.class){ count = countParam; }}
public static Date getDate() { return date;}
public static void setDate(Date dateParam) { synchronized(Singleton.class){ date = dateParam;}}
public static String printObject() {
return "Singleton [count=" + getCount() + ", date=" + getDate() + "]";
}
}
public int getCount() { return Singleton.getCount();}
public void setCount(int countParam) {Singleton.setCount(countParam);}
public Date getDate() { return Singleton.getDate();}
public void setDate(Date dateParam) {Singleton.setDate(dateParam);}
public String toString(){return Singleton.printObject();}
};
我这样用它.
SingletonWithEnum object1 = SingletonWithEnum.INSTANCE;
object1.setCount(5);
object1.setDate(new Date());