【发布时间】:2019-10-13 04:52:18
【问题描述】:
我正在使用 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 语句,因为这里的重构值意义不大。我想我还是会发布这个,看看社区是否有任何反馈。
【问题讨论】:
标签: if-statement type-conversion ternary