假设我们正在执行一个方法。我可以在两种编程风格之间进行选择。
选项 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 主要是为了提高可读性。
关于java - 什么更有效率?存储变量引用与不存储变量引用(Android 中的上下文),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28446653/