【发布时间】:2012-01-06 13:30:24
【问题描述】:
假设你有一个枚举单例:
public enum Elvis {
INSTANCE;
private int age;
private Elvis() { age = 42; }
public int getAge() { return age; }
public void leaveTheBuilding() { System.out.println("I'm outta here."); }
}
问题:那你如何使用它?是不是这样的:
int a = Elvis.INSTANCE.getAge();
Elvis.INSTANCE.leaveTheBuilding();
// and so on, using Elvis.INSTANCE
还是最好“显式”实例化它,然后使用该实例,如下所示:
Elvis elvis = Elvis.INSTANCE;
int a = elvis.getAge();
elvis.leaveTheBuilding();
// and so on, using elvis
我很想使用后者来避免到处都有丑陋的.INSTANCE 符号。但是这样做有缺点吗? (除了要实例化的额外一行代码。)
【问题讨论】: