Расширенные блоки переключения не поддерживаются на уровне 7 - Android Studio - PullRequest
0 голосов
/ 08 мая 2020

Я использовал оператор switch, который принимает строковые значения из счетчика. Сейчас таких строковых значений очень много. Это выглядит примерно так:

switch (spin.getSelectedItem()) {
    case "first option", "second option", "third option":
         result = 1;
         break;
    case "fourth option", "fifth option", "sixth option":
         result = 2;
         break;
    case "seventh option", "eighth option", "ninth option";
         result = 3;
         break;
}

Однако появляется сообщение об ошибке, в котором говорится, что расширенные блоки переключения не поддерживаются на уровне языка 7. Я попытался изменить совместимость источника и целевого объекта в настройках модуля, но это все еще не работает. Мы высоко ценим любые советы и помощь.

1 Ответ

2 голосов
/ 08 мая 2020

Не поддерживается следующая часть:

case "first option", "second option", "third option":

Это многозначные метки и действительно не поддерживаются до Java 14, где они стали стандартными.

Вместо этого вам нужно следующее:

switch (spin.getSelectedItem()) {
    case "first option":
    case "second option":
    case "third option":
        result = 1;
        break;
    /** rest of the code here
}

Если у вас нет ключевого слова break после метки, переключатель по умолчанию «переходит» в следующую метку под ним.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...