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

标签 java enums

可以在运行时从 Java 中的枚举中添加和删除元素吗?

例如,我可以从文件中读取枚举的标签和构造函数参数吗?


@saua,这只是一个是否真的可以出于兴趣而做的问题。我希望有一些巧妙的方法来改变正在运行的字节码,也许使用 BCEL或者其他的东西。我也跟进了this question因为我意识到我不完全确定什么时候应该使用枚举。

如果我希望能够在运行时安全地更改内容,我非常相信正确的答案是使用确保唯一性的集合而不是枚举。

最佳答案

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

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

在某些情况下,您可能需要一组标准值,但允许扩展。执行此操作的常用方法是为接口(interface)设置一个 interface,并为标准值设置一个实现该 interfaceenum。当然,当您只有对 interface 的引用时,您将失去 switch 的能力。

关于java - 我可以在 Java 运行时添加和删除枚举元素吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/478403/

相关文章:

java - 如果我在 java 中调用我的主类的一个函数,从其他有自己线程的对象,这个函数会在单独的线程中运行吗?

java - 该算法的时间复杂度是多少?

c++ - 访问命名空间中的枚举

python - 如何操作 Google Ads API 的 Enum 类的对象 - python

reactjs - 如何在 react / typescript 中使用枚举作为 Prop

java - 想要检查大括号是否存在。但返回假

java - Eclipse:有没有快捷键实现 "Fill method arguments and show guessed arguments"的功能

java - 从本地插件文件夹创建在线 Eclipse 更新站点

typescript - 将枚举转换为自定义文字数组

c - 您是否需要在 C 枚举的最后一个成员之后添加一个额外的 ","?