switch не считывает строки

272
13 ноября 2017, 19:01

Добрый день, у меня возникла проблема с 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;
}
Answer 1

Я , конечно, не экстрасенс, но мне кажется, что ошибка заключается в сравнении с LEFT, RIGHT, DOWN, UP. у вас это случаем не Enum? Если да, то Enum нужно сравнивать с Enum либо переопределить в Enum метод toString и сравнивать стринги, первый вариант предпочтительней, иначе смысл от Enum никакого.

READ ALSO
Firebase Android studio Notifications

Firebase Android studio Notifications

Добрый день, открываю в Android Studio Firebase и не вижу там пункт Notifications, хотя вроде должен быть там, можете подсказать почему нет его? Версия 30 студии

240
Android. Круговой таймер

Android. Круговой таймер

Как сделать круговой демонстратор оставшегося времени по типу такого:

218
Java synchronized блокирует класс а не объект?

Java synchronized блокирует класс а не объект?

Добрый день, недавно читал Брюса Эккеля, и наткнулся на такую проблему: блок synchronized(Object) блокирует класс обьекта, е не сам обьектК такому выводу...

247