ubi*_*con 1 java enums classloader
我有一个应用程序,它启动时加载文件.加载文件时,会初始化一些枚举.getTagGroupStartId当枚举被初始化时调用该方法.该方法采用"标记"的名称,该标记可能存在或可能不存在于加载的文件中.如果它不存在则getTagGroupStartId返回-1.
所有这一切都很好.当我加载另一个可能包含前一个文件不包含的"标记"的文件或者可能不包含前一个文件包含的"标记"时,会出现问题.在这两种情况下,我都需要更新枚举中的m_tagId值,以便枚举反映当前文件的值.如何重新加载/重新初始化枚举?
public enum ExampleEnum {
FOO("FOO_"),
BAR("BAR_"),
BAZ("BAZ_");
private final String m_tagName;
private final int m_tagId;
ExampleEnum(String tagName) {
m_tagName = tagName;
m_tagId = Tag.getTagGroupStartId(tagName);
}
// ...
}
Run Code Online (Sandbox Code Playgroud)
将以下方法添加到您的枚举:
public static void refreshAll() {
for (ExampleEnum e : values()) {
e.m_tagId = Tag.getTagGroupStartId(e.m_tagName);
}
}
Run Code Online (Sandbox Code Playgroud)
当你想要它刷新时调用它.
| 归档时间: |
|
| 查看次数: |
1081 次 |
| 最近记录: |