无法扩展枚举类以添加新元素
Java 枚举是最终类,不能子类化。修改现有枚举以添加新元素是不可行的。 Java 枚举设计确保在编译时显式已知所有可能的值。
考虑以下代码:
enum A { a, b, c } enum B extends A { d }
虽然 B 可能扩展了 A 并添加了新元素 d ,这在 Java 中是不可能的。用新值扩展枚举会导致不一致,因为 d 既是 A 的实例,又是 B 的不同值。
此外,枚举的目的是定义一组固定的已知值。使用新元素扩展枚举会破坏这一概念,并为只熟悉原始枚举值的用户带来歧义。
不要扩展枚举,而是考虑符合 Java 不变性和编译原则的替代解决方案 -时间安全。例如,您可以使用所需的值创建一个新的枚举,或者使用组合来创建一个封装枚举并根据需要提供附加功能的类。
以上是为什么我无法扩展 Java 枚举类以添加新元素?的详细内容。更多信息请关注PHP中文网其他相关文章!