这个问题提出了围绕代码的问题,如下所示(从那个问题复制):
public MyClass {
public void initialize(Collection<String> data) {
this.data = data; // <-- Bad!
}
private Collection<String> data;
}
存储引用会通过不小心将数据注入私有字段来打开错误之门data
。Aaron Digulla 接受的答案建议Collection.setUnmodifiable(set);
在传递之前冻结集合的策略,但他提到权衡是性能损失,因为任何想要修改集合的人都需要复制它,更改它,然后将其保存回来.
在资源极其有限的 Android 环境中处理此问题时是否有任何最佳实践?