В поисках этой цели, нашел много кода. Но любой из них дал мне то, что я хочу. Я хочу сделать обычный массив неизменным. Я попытался это:Есть ли способ сделать обычный массив неизменным в Java?
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class test {
public static void main(String[] args) {
final Integer array[];
List<Integer> temp = new ArrayList<Integer>();
temp.add(Integer.valueOf(0));
temp.add(Integer.valueOf(2));
temp.add(Integer.valueOf(3));
temp.add(Integer.valueOf(4));
List<Integer> immutable = Collections.unmodifiableList(temp);
array = immutable.toArray(new Integer[immutable.size()]);
for(int i=0; i<array.length; i++)
System.out.println(array[i]);
array[0] = 5;
for(int i=0; i<array.length; i++)
System.out.println(array[i]);
}
}
Но он не работает, я могу назначить 5 в массив [0] ... Есть ли способ, чтобы сделать этот массив неизменны?
http://stackoverflow.com/questions/3700971/immutable-array-in-java –
В отличие от C вы не можете. Однако вы можете использовать обертку. – johnchen902
Создание окончательной переменной массива предотвращает присвоение ему нового массива. Насколько я знаю, нет способа сделать его окончательным. –