如何声明一个数组,其中所有值(或对象)在java中都是常量。
例如: 假设[0]是常数,[1]是常数等等......
答案 0 :(得分:7)
如何使用枚举?
public enum Day {
SUNDAY, MONDAY, TUESDAY, WEDNESDAY,
THURSDAY, FRIDAY, SATURDAY
}
http://download.oracle.com/javase/tutorial/java/javaOO/enum.html
答案 1 :(得分:4)
你的意思是你不希望阵列可以修改吗?你不能。 Java不支持C ++风格的“const”概念。您必须使用某种只读集合。同样,您不能声明数组的元素只能以只读方式使用(即不会自行变异,这与更改数组以更改其中的元素不同)。
如果您向我们提供有关您尝试做的更多信息,我们可能会建议您采用其他方法。
答案 2 :(得分:3)
您可以将整个数组声明为常量,但不能声明该数组的内容。
解决问题的方法:使用unmodifiable List代替数组(如果可能)。这保证了存储的值不能被“替换”。
(这意味着:如果您存储对象,您仍然可以更改这些对象的属性,但您无法添加,删除或替换它们自己的对象。)
答案 3 :(得分:0)
使用关键字final
在java中声明常量
例如。 final Stirng sr="hello";
答案 4 :(得分:0)
我认为我们可以通过这种方式实现这一目标。我建议创建一个带有私有final数组的类,并提供一个公共方法来读取数组的任何元素。这样您就可以限制用户修改您的值,因为您只设置了一个getter而没有提供setter。希望有所帮助!!!
class Constants {
private Constants(){
throw new AssertionError("This class is not meant for instantiation");
}
private static final int[] myConstants = {3, 5, 8, 9, 23};
public static int getMyConstant(int i){
return myConstants[i];
}
}
使用常量,如Constants.getMyConstant(index)
我仍然会说,Enum是存储常量的最佳方式。但是,在JDK5下面,上述实现可能会有所帮助。希望有所帮助!!!