【发布时间】:2014-05-13 09:16:05
【问题描述】:
我想知道使用 final 静态变量或方法在 Java 中提供常量数组是否更好。
假设我们有:
public class myColor {
public final static String[] COLOR_NAMES = new String[] {"red", "green"};
public final static String[] colorNames() {return new String[] {"red", "green"};}
}
对我来说,第二个的缺点是每次调用它都会创建一个新的字符串数组。但是第一个有缺点,任何人都可以做到COLOR_NAMES[0] = "blue"。
澄清一下:我特别想提供一个颜色名称列表,以供后续使用正则表达式进行匹配。
有什么方法可以解决这个问题?
【问题讨论】:
-
这是使用
Enum的示例 -
但第一个有缺点,任何人都可以做 COLOR_NAMES[0] = "blue"。 为什么这是一个缺点?这是一个最终数组不是吗?
-
或者使用枚举...也许?
-
@cbach 数组是最终的,但不是它的内容。
标签: java arrays static constants