Добрый день, у меня возникла проблема с incompatible types error, проблема заключается в том что switch не считывает строки, хотя версия jdk 9
private void gameProcess() {
startTime = System.currentTimeMillis();
System.out.println(nameOfPlayer + ", тебе брошено испытание! Докажи, что ты крут :)");
while (!isWin) {
showMaze();
String step = userInput();
boolean isSetPositionDone = false;
switch (step) {
case UP:
isSetPositionDone = setPlayerPosition(0, -1);
break;
case DOWN:
isSetPositionDone = setPlayerPosition(0, 1);
break;
case LEFT:
isSetPositionDone = setPlayerPosition(-1, 0);
break;
case RIGHT:
isSetPositionDone = setPlayerPosition(1, 0);
break;
default:
System.out.println("Юзер мега-долбадятел");
break;
}
if (!isSetPositionDone)
System.out.println("Вы не можете туда пойти!");
abstactClear();
}
// Когда мы наконец-то выйграли
win();
}
// Метод для пользовательского ввода
private String userInput() {
String answer = "";
do {
System.out.println("Куда игроку пойти: w - вверх, s - вниз, a - влево, d - вправо");
System.out.print("Ход: ");
answer = scanner.next();
// Приводим к нижнему регистру
answer = answer.toLowerCase();
}
while (!(answer.equals(UP) || answer.equals(DOWN) ||
answer.equals(LEFT) || answer.equals(RIGHT)));
return answer;
}
Я , конечно, не экстрасенс, но мне кажется, что ошибка заключается в сравнении с LEFT, RIGHT, DOWN, UP. у вас это случаем не Enum? Если да, то Enum нужно сравнивать с Enum либо переопределить в Enum метод toString и сравнивать стринги, первый вариант предпочтительней, иначе смысл от Enum никакого.
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости