只是设置一个值比检查存在更快,只设置如果不存在 - 就像在这个Android / Java代码中?

时间:2010-10-20 10:36:23

标签: java android performance

示例:

每次listAdapter请求新行时都会运行该代码:

if (textViewTitle != null)
          textViewTitle.setTypeface(Controller.getInstance().widgetSettings.getBoldTypeface());

VS

if (textViewTitle != null 
    && textViewTitle.getTypeface() != null
    && textViewTitle.getTypeface().equals(Controller.getInstance().widgetSettings.getBoldTypeface()))
          textViewTitle.setTypeface(Controller.getInstance().widgetSettings.getBoldTypeface());

3 个答案:

答案 0 :(得分:4)

这完全取决于创造和平等运作的成本。如果性能非常重要,那么根据需要进行基准测试应该是微不足道的。

如果性能不是那么重要,那么前者的可读性要大得多,并传达与后者相同的代码意图信息。

答案 1 :(得分:2)

确保textViewTitle始终引用某些内容,以便您无需检查其存在。

答案 2 :(得分:0)

也许setTypeface不只是设置属性,例如导致重绘?在这种情况下,除非改变某些内容,否则你要避免调用它 如果没有设置原始字体,则在第二个代码中BTW,它将不被设置。我不确定它是否有意。