建立在SO问题Best Singleton Implementation In Java问题的基础上-即关于使用枚举创建一个单例-之间的区别/优点/缺点(省略构造函数)

public enum Elvis {
    INSTANCE;
    private int age;

    public int getAge() {
        return age;
    }
}

然后调用Elvis.INSTANCE.getAge()

public enum Elvis {
    INSTANCE;
    private int age;

    public static int getAge() {
        return INSTANCE.age;
    }
}

然后调用Elvis.getAge()

最佳答案

假设您要绑定(bind)到将使用给定对象的属性的东西-您可以非常轻松地传递Elvis.INSTANCE,但是您不能传递Elvis.class并期望它找到该属性(除非它经过故意编码才能找到类的静态属性)。

基本上,仅在需要实例时才使用单例模式。如果静态方法适合您,则只需使用这些方法,而不必理会枚举。

关于java - 在Java中将枚举用作单例的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/427902/

10-09 07:16