假设您有一个枚举单例:

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表示法。但是这样做有缺点吗? (除了要实例化的另一行代码。)

最佳答案

没关系一个使用局部变量,而另一个则不。使用您认为最易读的内容。

09-27 05:47