Ошибка с условным оператором в Java

c.getCollectibles()[i][j].isCollected() ? collectiblePanels[i][j].setSplash(c.getCollectibles()[i][j].getIcon()) : repaint();

Я пишу программу на Java, и в моей программе есть ошибка. Я использую условный оператор. c.getCollectibles() возвращает двумерный массив класса Collectible, а isCollected() - это нестатический общедоступный метод в классе Collectible, который возвращает значение boolean.

collectiblePanels - это двумерный массив класса, который содержит метод setSplash(). Метод setSplash() принимает тот же тип, что и getIcon() (подробности не имеют отношения к ошибке). В целом, setSplash() - это void.

repaint() - это метод случайной аннулирования. Опять же, конкретика не имеет отношения к ошибке.

Конкретная ошибка приведена ниже:

The left-hand side of an assignment must be a variable
Syntax error on token "?", invalid AssignmentOperator
Syntax error on token ":", ; expected

Я пробовал то же самое, используя стандартный формат if-else, и никаких ошибок не возникало. Это похоже на очень своеобразную ошибку со стороны Oracle или очень глупую ошибку с моей стороны.

Brandon Koerner 08.04.2018 05:05
JLS-15.25. Условный оператор ? : говорит, что явноЭто ошибка времени компиляции, когда второе или третье выражение операнда является вызовом метода void. Здесь оба - это void.
Elliott Frisch 08.04.2018 05:07

Выбирайте последнее, определенно последнее - это ошибка в вашем понимании того, как работает тернарный оператор. Но все это легко найти, если вы выполните поиск в Google по своему сообщению об ошибке. Например

Hovercraft Full Of Eels 08.04.2018 05:08

Вы на собственном горьком опыте обнаружили, что условный оператор не является заменой оператору if. Живи и учись, друг мой :-)

Kevin Anderson 08.04.2018 05:10

Еще раз спасибо. После того, как я лучше ознакомился с тем, как java обрабатывает условный оператор, я чувствую себя немного глупо с этим вопросом.

Brandon Koerner 16.09.2018 06:31
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
5
39
0

Другие вопросы по теме