在下面的代码中,我们调用listType.getDescription()
了两次:
for (ListType listType: this.listTypeManager.getSelectableListTypes())
{
if (listType.getDescription() != null)
{
children.add(new SelectItem( listType.getId() , listType.getDescription()));
}
}
我倾向于重构代码以使用单个变量:
for (ListType listType: this.listTypeManager.getSelectableListTypes())
{
String description = listType.getDescription();
if (description != null)
{
children.add(new SelectItem(listType.getId() ,description));
}
}
我的理解是 JVM 以某种方式针对原始代码进行了优化,尤其是嵌套调用,例如children.add(new SelectItem(listType.getId(), listType.getDescription()));
.
比较这两种选择,哪一种是首选方法,为什么?那是在内存占用、性能、可读性/易用性以及我现在没有想到的其他方面。
后一个代码片段何时变得比前者更有利,也就是说,listType.getDescription()
当使用临时局部变量变得更可取时,是否有任何(近似)数量的调用,因为listType.getDescription()
总是需要一些堆栈操作来存储this
对象?