Java 中的不可变数组
2022-08-31 06:54:02
在Java中,有没有一种不可变的替代方案来代替原始数组?创建一个基元数组实际上并不能阻止一个人做这样的事情final
final int[] array = new int[] {0, 1, 2, 3};
array[0] = 42;
我希望数组的元素是不可更改的。
在Java中,有没有一种不可变的替代方案来代替原始数组?创建一个基元数组实际上并不能阻止一个人做这样的事情final
final int[] array = new int[] {0, 1, 2, 3};
array[0] = 42;
我希望数组的元素是不可更改的。
不适用于基元数组。您需要使用 List 或其他一些数据结构:
List<Integer> items = Collections.unmodifiableList(Arrays.asList(0,1,2,3));
我的建议是不要使用数组或数组,而是使用Guava的ImmutableList,它就是为此目的而存在的。unmodifiableList
ImmutableList<Integer> values = ImmutableList.of(0, 1, 2, 3);