Как использовать троичный оператор с несколькими условиями внутри ключевого слова super? - PullRequest
0 голосов
/ 17 февраля 2019

Я пытаюсь превратить приведенный ниже код в одну строку кода, используя супер-конструктор и троичный оператор.Пробовал несколько вещей, но ничего не работает.

if (c == 0) {
    super(Piece.JMAN, x, y, Color.red);
} else if (c == 1) {
    super(Piece.JMAN, x, y, Color.green);
} else {
    super(Piece.JMAN, x, y, Color.yellow);
}

1 Ответ

0 голосов
/ 17 февраля 2019

Как писал @jacobg в комментариях, вы можете сделать

super(Piece.JMAN, x, y, c == 0 ? Color.red : c == 1 ? Color.green : Color.yellow)

Для удобства чтения вы можете разбить его на два оператора с добавленными скобками.

Color color = (c == 0 ? Color.red : (c == 1 ? Color.green : Color.yellow));
super(Piece.JMAN, x, y, color);
...