2012-12-15 26 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

相關問題