我见过这样的例子:
public class MaxSeconds {
public static final int MAX_SECONDS = 25;
}
Run Code Online (Sandbox Code Playgroud)
并且假设我可以有一个Constants类来包装常量,声明它们是静态final.我几乎不知道Java,我想知道这是否是创建常量的最佳方法.
我正在使用枚举来替换String我的Java应用程序中的常量(JRE 1.5).
当我将enum视为不断调用的方法中的静态名称数组时(例如,在呈现UI时),是否会影响性能?
我的代码看起来有点像这样:
public String getValue(int col) {
return ColumnValues.values()[col].toString();
}
Run Code Online (Sandbox Code Playgroud)
values()重复枚举相关的隐藏成本(例如,在paint()方法内部).int=> enum转换 - 这不是Java的方式.提取values()数组的实际价格是多少?这甚至是个问题吗?
请阅读下面的Simon Langhoff的答案,Geeks On Hugs在接受的答案评论中已经指出了这一点.Enum.values() 必须做一个防御性的副本