作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个类在列表中保存条目,可以不时通过方法清除和重新填充。使用普通 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/
我是一名优秀的程序员,十分优秀!