一尘不染

在Java中将枚举用作单例的最佳方法是什么?

java

在SO问题上编写的内容基础上构建Java最佳单例实现 -即关于使用枚举创建单例-之间的区别/优点/缺点(省略构造函数)

public enum Elvis {
    INSTANCE;
    private int age;

    public int getAge() {
        return age;
    }
}

and then calling Elvis.INSTANCE.getAge()

public enum Elvis {
    INSTANCE;
    private int age;

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

and then calling Elvis.getAge()


阅读 422

收藏
2020-03-07

共1个答案

一尘不染

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

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

2020-03-07