如何在 super 关键字内使用具有多个条件的三元运算符?

How to use a ternary operator with multiple conditions inside of the super keyword?

我正在尝试使用超级构造函数和三元运算符将下面的代码变成一行代码。 尝试了很多东西,但没有任何效果。

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);
}

正如@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);