Тернарный оператор не работает в Android - PullRequest
3 голосов
/ 22 июня 2011

У меня простой вопрос, который поражает меня.Я пытаюсь использовать троичный оператор в Java.Я новичок в Android и Java.Этот код выдает мне ошибку:

amt < 0 ? lendBtn.setChecked(true) : lendBtn.setChecked(false);

"Syntax error on token "<", invalid AssignmentOperator"

Итак, я заменяю его оператором if, и он полностью работает:

if (amt < 0) { ... }

Это не имеет большого значения, но кто-нибудь знает почему?

1 Ответ

16 голосов
/ 22 июня 2011

Это не имеет ничего общего с Android.Вы не можете использовать условное выражение как оператор сам по себе ... и второй и третий операнды также не могут быть выражениями void.

Вы должны использовать:

lendBtn.setChecked(amt < 0);

... с которого проще начать.

...