Java 声明数组的元素final(不仅仅是数组本身)

Java 声明数组的元素final(不仅仅是数组本身),java,final,Java,Final,我们可以将数组设置为final,如下所示:final int[]foo=,但我是否可以确保该数组中的每个元素也是最终元素?使用数组是不可能的。但是,对于这一点,您可以使用: 返回指定列表的不可修改视图。此方法允许模块向用户提供对内部列表的“只读”访问。对返回列表的查询操作“通读”到指定列表,并尝试修改返回列表(无论是直接修改还是通过其迭代器修改),会导致不支持操作异常 这与数组配合使用效果很好。另一个答案已经指出,asList。因此,您的数组foo将写为: final List<Integ

我们可以将数组设置为final,如下所示:
final int[]foo=,但我是否可以确保该数组中的每个元素也是最终元素?

使用数组是不可能的。但是,对于这一点,您可以使用:

返回指定列表的不可修改视图。此方法允许模块向用户提供对内部列表的“只读”访问。对返回列表的查询操作“通读”到指定列表,并尝试修改返回列表(无论是直接修改还是通过其迭代器修改),会导致
不支持操作异常

这与
数组配合使用效果很好。另一个答案已经指出,asList
。因此,您的数组
foo
将写为:

final List<Integer> foo = Collections.unmodifiableList(Arrays.asList(1, 2, 3, ...));
final List foo=Collections.unmodifiableList(Arrays.asList(1,2,3,…);

您可以使用
foo.get(i)
而不是
foo[i]
,您不能这样做,但可以使用不可修改的列表:

List<String> items = Collections.unmodifiableList(Arrays.asList("I", "can", "never", "change"));
List items=Collections.unmodifiableList(Arrays.asList(“I”、“can”、“never”、“change”));

@sp00m不,这不是……只是因为两个问题有时有相同的解决方案,这并不意味着这两个问题是相同的!这个问题问:“如何使这个数组不可变?”。这不是你要问的吗?相关:
;)@sp00m我看不出这个问题与您发布的问题之间的关系。