首页 > Java > java教程 > 为什么我无法扩展 Java 枚举类以添加新元素?

为什么我无法扩展 Java 枚举类以添加新元素?

Susan Sarandon
发布: 2024-12-05 10:29:13
原创
1059 人浏览过

Why Can't I Extend Java Enum Classes to Add New Elements?

无法扩展枚举类以添加新元素

Java 枚举是最终类,不能子类化。修改现有枚举以添加新元素是不可行的。 Java 枚举设计确保在编译时显式已知所有可能的值。

考虑以下代码:

enum A {
  a,
  b,
  c
}

enum B extends A {
  d
}
登录后复制

虽然 B 可能扩展了 A 并添加了新元素 d ,这在 Java 中是不可能的。用新值扩展枚举会导致不一致,因为 d 既是 A 的实例,又是 B 的不同值。

此外,枚举的目的是定义一组固定的已知值。使用新元素扩展枚举会破坏这一概念,并为只熟悉原始枚举值的用户带来歧义。

不要扩展枚举,而是考虑符合 Java 不变性和编译原则的替代解决方案 -时间安全。例如,您可以使用所需的值创建一个新的枚举,或者使用组合来创建一个封装枚举并根据需要提供附加功能的类。

以上是为什么我无法扩展 Java 枚举类以添加新元素?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板