gpt4 book ai didi

list - 代码质量/ Guava : clear and fill a final list or assign a new Immutablelist

转载 作者:行者123 更新时间:2023-12-01 09:35:53 27 4
gpt4 key购买 nike

我有一个类在列表中保存条目,可以不时通过方法清除和重新填充。使用普通 List 作为类的最终成员是否被认为是更好的做法,还是应该在每次重新填充时创建一个 Immutablelist,从而丢失“final”修饰符?

我问的原因是因为其他对象可以从外部访问列表,但不应该能够更改它们。我想返回一个 ImmutableList 给他们,但不是每次调用访问器时都复制它。

最佳答案

对于这个用例,我实际上不会使用 Guava,而只是 JDK 中的工具。

你应该做的是在你的类中使用一个传统的、可变的列表实现——可能是一个 ArrayList。但是,您的类应该实现 getList() 方法,例如

public List<Something> getList() {
return Collections.unmodifiableList(internalList);
}

这样可以保证其他对象不能修改列表,但是可以随意修改列表。

关于list - 代码质量/ Guava : clear and fill a final list or assign a new Immutablelist,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8168259/

27 4 0