实例化和使用枚举单
问题描述:
假设你有一个枚举单:实例化和使用枚举单
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
无处不在。但是有没有这样做的缺点? (除了实例化的一行额外代码)。
答
这没关系。一个使用局部变量,另一个不使用。使用你发现最具可读性的东西。
答
在我看来,你可以更好地在这种情况下,使用一个静态类:
public class Elvis {
private static int age = 42;
private Elvis() {}
public static int getAge() { return age; }
public static void leaveTheBuilding() {
System.out.println("I'm outta here.");
}
}
然后执行:
int a = Elvis.getAge();
Elvis.leaveTheBuilding();
// etc.