If statement 如何将If语句转换为三元运算符表达式

If statement 如何将If语句转换为三元运算符表达式,if-statement,type-conversion,ternary,If Statement,Type Conversion,Ternary,我正在使用Java版本“1.8.0_171”。我试图将这个简单的If语句转换为三元表达式/运算符: private String player; // a class variable . . . . . . . . . . public String switchPlayer(String player) { if(this.player == "X") this.player = "O";

我正在使用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语句:

玩家==“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语句,因为这里的重构值意义不大。我想无论如何我都会发布这篇文章,看看社区是否有任何反馈。

我想如果你尝试以下方法,它会起作用:

this.player = this.player == "X"? "O" : "X";