如何使数组元素不可变?
How to make elements of array immutable?
我有一个最终的字符串数组并将其传递给一个方法。该方法能够更改元素的值,如下所示。如何保护final String数组的元素不被修改?
class Test {
public static void main(String[] arguments) {
final String[] finalNames = new String[] { "Name1", "Name2", "Name3" };
iterateNames(finalNames);
}
private static void iterateNames(final String[] finalNames) {
//The below assignment should be prevented
finalNames[0] = "ChangedName1";
for (String name : finalNames) {
System.out.println(name);
}
}
}
查看 this 答案。 TL:DR: 你需要使用其他数据结构来获取不可变数组。
我有一个最终的字符串数组并将其传递给一个方法。该方法能够更改元素的值,如下所示。如何保护final String数组的元素不被修改?
class Test {
public static void main(String[] arguments) {
final String[] finalNames = new String[] { "Name1", "Name2", "Name3" };
iterateNames(finalNames);
}
private static void iterateNames(final String[] finalNames) {
//The below assignment should be prevented
finalNames[0] = "ChangedName1";
for (String name : finalNames) {
System.out.println(name);
}
}
}
查看 this 答案。 TL:DR: 你需要使用其他数据结构来获取不可变数组。