public enum LogUtil {
INSTANCE;
public final int DEBUG = 0;
private int level = DEBUG;
public void debug(String msg) {
if (DEBUG >= level) {
System.out.println(msg);
}
}
public static void main(String[] args) {
LogUtil logUtil = LogUtil.INSTANCE;
logUtil.debug("haha");
}
}
Effective Java中推荐了一种更优雅的实现,就是使用枚举类来实现单例类。
枚举除了线程安全和防止反射调用构造器外,还提供自动序列化机制,防止反序列化时自动创建新的对象.