2012-12-15 27 views
1

This question带来了一个类似如下(从这个问题复制)代码的问题:从Android中的参数分配集合的首选方式是什么?

public MyClass { 
    public void initialize(Collection<String> data) { 
     this.data = data; // <-- Bad! 
    } 
    private Collection<String> data; 
} 

存储参考通过不慎将数据注入私有字段data打开门的错误。 Aaron Digulla接受的答案提出了在传递之前冻结集合Collection.setUnmodifiable(set);的策略,但他提到权衡是性能问题,因为任何想修改集合的人都需要复制它,然后将其保存下来背部。

在极其资源有限的Android环境中处理此问题时是否有任何最佳实践?

+0

似乎最好的办法不是在以这种方式使用它们之后对集合进行变异。也许这可以通过文档和意见来鼓励... – jahroy

回答

3

在我看来,只是保留参考。一个android应用程序不包含太多的代码,并且您或您的开发团队控制着所有的源代码。所以最简单的解决方案适用于大多数情况。

+1

+1这是最好的答案;如果你的团队中的人开始搞乱你的封装数据,把他们踢到后面,告诉他们学会正确编码。 – Eric

相关问题