変更可能な List メンバーが含まれていても、次のクラスを変更不可にしたいと考えています。どうすればこれを達成できますか?
class MyImmutableClass {
private List<Integer> data;
public MyImmutableClass(List<Integer> data) {
this.data = data;
}
public List<Integer> getData() {
return data;
}
}
main()
以下は、オブジェクトの状態を変更する機能を持つテスト クラスです。
class TestMyImmutableClass{
public static void main(String[] args) {
List<Integer> data = new ArrayList<Integer>();
data.add(2);
data.add(5);
MyImmutableClass obj = new MyImmutableClass(data);
obj.getData().add(3);
System.out.println("Data is; " + obj.getData());
}
}
O/P :Data is; [2, 5, 3]