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

时间:2019-02-17 02:42:31

标签: java ternary-operator

我正在尝试使用超级构造函数和三元运算符将以下代码转换为一行代码。 已经尝试了多种方法,但没有任何效果。

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 :(得分:2)

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