У меня есть основное сомнение в отношении выполнения следующего кода (Образец):
String version = computer.getSoundcard().getUSB().getVersion();
Что может быть выбрано NullPointerException
, если Soundcard
не существует.
Итак, у меня есть
Вариант 1:
if(computer!=null &&
computer.getSoundCard() !=null &&
computer.getSoundCard().getUSB()!=null) {
version = computer.getSoundcard().getUSB().getVersion();
}
Вариант 2:
if(computer !=null){
SoundCard sc = computer.getSoundCard();
if(sc!=null){
USB usb = sc.getUSB();
if(usb!=null){
version = usb.getVersion();
}
}
}
В соответствии с моим пониманием Вариант 1 будет иметь дополнительные накладные расходы, поскольку он должен оценивать одно и то же выражение несколько раз, например computer.getSoundCard()
3 раза, computer.getSoundCard().getUSB()
2 раза.
Правильно ли я понимаю?
ИЗМЕНИТЬ 1: Изменен вариант 2 из
version = computer.getSoundcard().getUSB().getVersion();