プライベートフィールドリストを返すゲッターを持つクラスがあります。
Class MyClass {
private List<String> myList;
public List<String> getMyList(){
return myList;
}
}
ただし、getterメソッドの呼び出し元は、そのリストに要素を追加したり、そのリストから要素を削除したりすることはできません。
MyClass instance = new MyClass();
List<String> hisList = instance.getMyList();
hisList.add("new element");
UnsupportedOperationExceptionがスローされました。
getterがそのリストへの参照を返すことは知っていますが、呼び出し側でそのリストが読み取り専用であるのはなぜですか?ゲッターでCollections.unmodizableList()を返さなかったことに注意してください。
アップデート:
申し訳ありませんが、Arrays.asListによって修正サイズのリストを作成しました。その理由は;)