为了账号安全,请及时绑定邮箱和手机立即绑定

我可以在Java中在运行时添加和删除枚举元素

我可以在Java中在运行时添加和删除枚举元素

RISEBY 2019-08-19 14:50:13
我可以在Java中在运行时添加和删除枚举元素可以在运行时从Java中的枚举中添加和删除元素吗?例如,我可以从文件中读取枚举的标签和构造函数参数吗?@saua,这只是一个问题,它是否真的可以完成。我希望有一些改变运行字节码的巧妙方法,可能使用BCEL或其他东西。我也跟进了这个问题因为我意识到我不确定何时应该使用枚举。我非常确信,如果我希望能够在运行时安全地更改内容,那么正确的答案是使用一个确保唯一性而不是枚举的集合。
查看完整描述

3 回答

?
蛊毒传说

TA贡献1895条经验 获得超3个赞

不,枚举应该是一个完整的静态枚举。

在编译时,您可能希望从某种类型的另一个源文件生成枚举.java文件。你甚至可以像这样创建一个.class文件。

在某些情况下,您可能需要一组标准值但允许扩展。通常的方法是使用interface接口和enum实现interface标准值的接口。当然,switch当你只有一个参考时,你就失去了能力interface


查看完整回答
反对 回复 2019-08-19
?
慕容708150

TA贡献1831条经验 获得超4个赞

在窗帘后面,枚举是具有私有构造函数的POJO和枚举类型的一组公共静态最终值(参见此处的示例)。事实上,直到Java5,以这种方式构建自己的枚举被认为是最佳实践,Java5将该enum关键字作为简写引入。请参阅Enum <T>的来源以了解更多信息。

因此,使用公共静态最终常量数组编写自己的“TypeSafeEnum”应该没有问题,这些常量由构造函数读取或传递给它。

另外,请自己帮忙并覆盖equalshashCode并且toString,如果可能的话,创建一个values方法

问题是如何使用这样的动态枚举...你不能从文件中读取值“PI = 3.14”来创建enum MathConstants然后继续使用MathConstants.PI你想要的任何地方......


查看完整回答
反对 回复 2019-08-19
  • 3 回答
  • 0 关注
  • 1402 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信