Как получить родительский узел, используя значение из дочернего узла

Объяснение можно сделать из информации в спецификации g0 java language: 15.25. Условный оператор? : .

Из таблицы вы получаете информацию о том, что если второй операнд (rsrqs.get(boxedPci.toString())) имеет тип Integer, а третий операнд имеет тип int , результат будет иметь тип int.

Это означает, что

Integer boxedRsrq = boxedPci != null ? rsrqs.get(boxedPci.toString()) : -1;

семантически совпадает с

Integer boxedRsrq = boxedPci != null ? ((int)rsrqs.get(boxedPci.toString())) : -1;

. Но это означает, что вы получаете NullPointerException, если вы получаете null с карты, что, очевидно, происходит.

Если вы передадите третий операнд в Integer, второй операнд никогда не будет передан в int, и NPE не происходит.

0
задан DaveShaw 31 December 2018 в 16:58
поделиться