【发布时间】:2010-12-20 14:52:51
【问题描述】:
我正在考虑在我正在开发的 Java 游戏中使用 enum 类型来管理 i18n,但我很好奇在使用包含大量元素(我认为是数千个)的枚举时可能出现的性能问题。
实际上我正在尝试类似:
public enum Text {
STRING1,
STRING2,
STRING3;
public String text() {
return text;
}
public String setText() {
this.text = text;
}
}
然后加载它们,我可以填写字段:
static
{
Text.STRING1.setText("My localized string1");
Text.STRING2.setText("My localized string2");
Text.STRING3.setText("My localized string3");
}
当然,当我必须管理多种语言时,我会从文件中加载它们。
我要问的是
- 是否为每个元素分配了一个对象(除了字符串)? (我想是的,因为枚举是用对象实现的)
- 如何从枚举中检索正确的元素?它在编译时是静态的吗? (我的意思是当我在某个地方使用
Text.STRING1.text())。所以它应该是恒定的复杂性,或者它们可能只是在编译阶段被替换.. - 总的来说,这是一个好方法还是我应该期待其他方法?
谢谢
【问题讨论】:
标签: java internationalization enums