我正在使用Java版本“ 1.8.0_171”。我正在尝试将此简单的If语句转换为三元表达式/运算符:
private String player; // a class variable
. . . . . . . . . .
public String switchPlayer(String player) {
if(this.player == "X")
this.player = "O";
else
this.player = "X";
return player;
}
我试图用以下三元语句替换该方法中的If语句:
player ==“ X”? “ O”:“ X”;
Java在此语句中用以下错误标记==“ X”:
Multiple markers at this line
- Type mismatch: cannot convert from String to
boolean
- Syntax error on token "==", invalid
AssignmentOperator
这是Eclipse建议的快速修复方法
String dummy = player == "X" ? "O" : "X";
这似乎有些奇怪,但是Java中的三元运算符具有左侧变量分配要求。我现在收到的唯一错误是一个简单的警告,提示我不在代码中的其他任何地方使用变量dummy。
我将仅使用简单的If语句,因为此处的重构值意义不大。我认为无论如何我都会发布此消息,以查看社区是否有任何反馈。
答案 0 :(得分:1)
如果您尝试过,我认为它会起作用:
this.player = this.player == "X"? "O" : "X";