私が書いたら
List<Integer> a1 = Arrays.asList(1, 2, 3);
List<Integer> a2 = Collections.unmodifiableList(a1);
a2
読み取り専用ですが、書き込むと
a1.set(0,10);
その後a2
も変更されます。
API で次のように指定されている場合:
指定されたコレクションの変更不可能なビューを返します。このメソッドにより、モジュールはユーザーに内部コレクションへの「読み取り専用」アクセスを提供できます。
では、元のコレクションを変更すると、コピー先のコレクションも変更されるのはなぜですか?
意味を誤解したのかもしれません。もしそうなら、そのコレクションの防御的なコピーを書く方法は何ですか?