可以在运行时从 Java 中的枚举中添加和删除元素吗?
例如,我可以从文件中读取枚举的标签和构造函数参数吗?
@saua,这只是一个是否真的可以出于兴趣而做的问题。我希望有一些巧妙的方法来改变正在运行的字节码,也许使用 BCEL或者其他的东西。我也跟进了this question因为我意识到我不完全确定什么时候应该使用枚举。
如果我希望能够在运行时安全地更改内容,我非常相信正确的答案是使用确保唯一性的集合而不是枚举。
最佳答案
不,枚举应该是一个完整的静态枚举。
在编译时,您可能希望从另一个源文件生成枚举 .java 文件。你甚至可以像这样创建一个 .class 文件。
在某些情况下,您可能需要一组标准值,但允许扩展。执行此操作的常用方法是为接口(interface)设置一个 interface
,并为标准值设置一个实现该 interface
的 enum
。当然,当您只有对 interface
的引用时,您将失去 switch
的能力。
关于java - 我可以在 Java 运行时添加和删除枚举元素吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/478403/