我们可以像这样制作一个数组最终:final int[] foo = <whatever>;
,但无论如何我可以确保该数组中的每个元素也是最终的吗?
答案 0 :(得分:5)
阵列无法实现。但是,为此,您可以使用Collections.unmodifiableList
代替:
返回指定列表的不可修改视图。该方法允许模块为用户提供&#34;只读&#34;访问内部列表。对返回列表的查询操作&#34;通读&#34;到指定的列表,并尝试修改返回的列表,无论是直接还是通过其迭代器,都会产生
UnsupportedOperationException
。
这与Arrays.asList
一起使用效果很好,正如另一个答案已经表明的那样。因此,您的数组foo
将被写为:
final List<Integer> foo = Collections.unmodifiableList(Arrays.asList(1, 2, 3, ...));
而不是foo[i]
您将使用foo.get(i)
。
答案 1 :(得分:1)
您不能这样做,但您可以使用不可修改的列表:
List<String> items = Collections.unmodifiableList(Arrays.asList("I", "can", "never", "change"));