我正在尝试使用超级构造函数和三元运算符将以下代码转换为一行代码。 已经尝试了多种方法,但没有任何效果。
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);
}
答案 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);