В следующем фрагменте кода дважды вызываем 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()
, когда использование локальной переменной temp становится более желательным, поскольку listType.getDescription()
всегда требует некоторых операций стека для хранения объекта this
?