我在我的Java应用程序(JRE 1.5)中使用枚举来替代String
常量。
如果我将枚举视为一个静态名称数组并在不断调用的方法中使用它(例如渲染UI时),是否会影响性能?
我的代码看起来有点像这样:
public String getValue(int col) {
return ColumnValues.values()[col].toString();
}
澄清:
- 我关心反复枚举
values()
(例如在paint()方法内部)相关的隐藏成本。 - 我现在可以看到,所有我的场景都包括一些
int
=>enum
转换 - 这不是Java的方式。
提取values()
数组的实际代价是多少?这是一个问题吗?
Android开发者
请阅读Simon Langhoff在下面的答案,Geeks On Hugs已经在被接受的答案的评论中指出。 Enum.values()
必须进行防御性复制。