2012-01-06 66 views
2

假设你有一个枚举单:实例化和使用枚举单

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无处不在。但是有没有这样做的缺点? (除了实例化的一行额外代码)。

回答

4

这没关系。一个使用局部变量,另一个不使用。使用你发现最具可读性的东西。

2

在我看来,你可以更好地在这种情况下,使用一个静态类:

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.