假设我们正在研究一种方法。我可以选择两种编程风格。
选项A:每次需要访问资源时使用getContext().getResources()

public void doSomeStuffA(){
  //...
  getContext().getResources().getDrawable(R.drawable.ic_launcher);
  getContext().getResources().getDrawable(R.drawable.ic_arrow);      //...
}

选项B:将getContext().getResources()存储在变量中。
public void doSomeStuffB(){
  //...
  Resources r = getContext().getResources();
  r.getDrawable(R.drawable.ic_launcher);
  r.getDrawable(R.drawable.ic_arrow);
  //...
}

哪种款式比较好?

最佳答案

就像许多性能和调谐一样,正确的答案是“这取决于”。99%的情况下,额外的hashmap解引用和变量引用之间的差异并不是最大的(甚至是值得注意的)性能问题。诀窍在于了解什么时候可能是问题(例如,在紧密循环中频繁调用)。
在单个方法中,我倾向于使用选项b主要是为了可读性。

10-07 19:35
查看更多