Java枚举可以有行为吗?

2022-09-03 17:10:03

在Java中,枚举可以做枚举所做的伟大事情,但也可以有方法(行为和逻辑)。与使用使用枚举的类相比,这有什么优势?也欢迎提供简单的例子来说明这一点。


答案 1

下面是一个简单的示例:

enum RoundingMode {
    UP {
        public double round(double d) {
            return Math.ceil(d);
        }
    },
    DOWN {
        public double round(double d) {
            return Math.floor(d);
        }
    };

    public abstract double round(double d);
}

答案 2

Enum类型也是实现真正单例的好方法。

Java 中的经典单例模式通常涉及私有构造函数和公共静态工厂方法,但仍然容易受到通过反射或(反)序列化进行实例化的影响。枚举类型可防止这种情况。