Странное поведение троичного оператора - PullRequest
0 голосов
/ 14 декабря 2018

У меня странная ситуация, которую я не могу объяснить после отладки.Я хочу установить текст метки с этим шаблоном:

POI: «замена»

Замена зависит от троичной операции, которая выглядит следующим образом:

label.setText("POI: " + requestItem.getPoi() != null ? requestItem.getPoi() : "#####")

requestItem.getPoi() возвращаеттип String, и я хочу проверить, возвращает ли он String или ноль.Если ноль, я хочу установить '#####'.

Проблема с requestItem.getPoi() != null ? requestItem.getPoi() : "#####"

Когда я оцениваю это значение в отладчике, когда requestItem.getPoi () возвращает нулевые броски отладчика "Несоответствие типов: Невозможно преобразовать из String в void ".

Кто-нибудь имеет представление о том, что не так с этой операцией?

1 Ответ

0 голосов
/ 14 декабря 2018

Проблема вызвана приоритетом оператора, необходимо заключить троичное выражение в круглые скобки.Попробуйте это:

"POI: " + (requestItem.getPoi() != null ? requestItem.getPoi() : "#####")
...