Android Notepad练习1教程和Menu.FIRST

时间:2010-09-01 07:56:01

标签: android

道歉,如果这最终成为一个愚蠢的问题,但我只是想知道为什么在记事本练习1教程(http://developer.android.com/resources/tutorials/notepad/notepad-ex1.html)的第9步完成...

public static final int INSERT_ID = Menu.FIRST;

...然后在任何地方都使用INSERT_ID,而不是直接在任何地方使用Menu.FIRST

我想我不想创建任何新变量,特别是当它们已经是静态最终变量时。

创建INSERT_ID是否很昂贵?

1 个答案:

答案 0 :(得分:3)

因为如果你在任何地方都使用了Menu.First,那么决定在菜单中移动该选项,这样它就不再是你需要更新所有引用的第一项。这样您只需要在一个地方更新它,名义上更明确的INSERT_ID将反映您在其他地方所做的更改。

至于创建新变量的性能影响:是的,创建变量会耗尽(无关紧要的)CPU时间,是的,存储变量将耗尽(无关紧要)的内存量,但你永远不应该在确定您遇到瓶颈之前将性能放在代码可读性之前 - 您将处于一个非常有限的环境中,因为这可能是一个问题所在。

最后,很多编译器无论如何都会内联对INSERT_ID的引用。这意味着所有对INSERT_ID的引用都将在编译时使用Menu.First中的值替换,并且实际上永远不会创建该变量。我不太了解Android编译器肯定会以某种方式说出来,但如果它没有这样做我会感到惊讶。