gpt4 book ai didi

java - 为什么我不能更改 getter 返回的集合?

转载 作者:行者123 更新时间:2023-12-01 07:14:59 24 4
gpt4 key购买 nike

我有一个带有 getter 的类,它返回其私有(private)字段 List。

Class MyClass {
private List<String> myList;

public List<String> getMyList(){
return myList;
}
}

但是 getter 方法的调用者无法从该 List 中添加或删除元素。

MyClass instance = new MyClass();
List<String> hisList = instance.getMyList();
hisList.add("new element");

抛出了UnsupportedOperationException。

我知道 getter 返回对该列表的引用,但为什么该列表在调用方是只读的?请注意,我没有在 getter 中返回 Collections.unmodifyingList()。

更新:

抱歉,我通过 Arrays.asList 创建了一个固定大小的列表,这就是原因;)

最佳答案

不,您尚未在 getter 中调用 unmodifyingList(),但列表可能已经 引用的那样不可修改>我的列表

如果您可以提供一个简短但完整的示例(例如填充myList的示例:)

关于java - 为什么我不能更改 getter 返回的集合?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5119562/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com