【发布时间】:2011-04-18 14:19:00
【问题描述】:
我正在尝试找到一种方法来强制 Java 加载/初始化枚举类型(嵌套在包含静态 Map 的类中)。
这对我很重要,因为枚举类型具有填充所述映射的构造函数,并且如果没有显式方式来初始化此枚举,映射将保持为空。我曾尝试使用Class.forName,但这似乎不起作用。
我想我可以创建一个枚举实例(并将其存储在其他集合或其他东西中),但我想知道是否有一种优雅的方式来做到这一点。
【问题讨论】:
-
如果你不能保证枚举会在你需要使用地图之前被构建,你可能想在这里重新考虑你的设计,尽管马特关于使用静态初始化器的建议可能会让你得到你想要的想要。
-
这个话题stackoverflow.com/questions/3798083/3800434#3800434 涉及到这个话题。
-
Class.forName确实初始化了一个类。如果它“不起作用”,那么您的代码还有其他您没有意识到的问题。为什么不发布您的代码。 -
基本上我看到一个异常说明该类是“无效的”,并且我确定我有正确的包路径。 Class.forName() 应该在所有情况下都可以处理枚举吗?
标签: java enums enumeration