Я работаю с версией 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"? «О»: «Х»;
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, потому что значение рефактора здесь имеет небольшое значение. Я думал, что в любом случае опубликую это, чтобы узнать, есть ли какие-либо отзывы от сообщества.