Android Studio не предупреждает о неисчерпывающей статистике переключения

Это может быть ошибкой; Однако я не уверен. В javaswitch Заявления, которые не являются исчерпывающими, должны приводить к возникновению каких-либо предупреждений в IDE. В этом случае Android Studio 3.0 (B6)

Учитывая enum class Foo

public enum  Foo {

  FOO_ONE,
  FOO_TWO
}

и затем позже используется в операторе switch как это:

switch(fooEnum){
      case FOO_ONE:
     //Do something here 
        break;
    }

Если компилятор не предупредит меня каким-либо образом, что этот оператор switch не использует все Foo enum варианты?

2 ответа

Решение

Компилятор не должен выдавать предупреждение, это действие для линтера. Вы можете включить эту функцию в Android Studio. Если вы нажмете кнопку в правом нижнем углу окна Android Studio, которая выглядит как голова маленького чувака, появится кнопка "Настроить проверки".

Затем в разделе "Java-> Control Flow Issues -> Enum" switch ", который пропускает регистр" включите эту опцию.

Нет, они не должны. Неисчерпывающие операторы переключения не являются незаконными. Создание предупреждения в большинстве случаев будет специфичным для компилятора (и, честно говоря, я думаю, что это действительно очень раздражает). В языке нет ничего, что требовало бы от вас компилятора о чем-либо предупреждать. Хотя, вероятно, есть параметр ворса, который включит это, похоже, что тип ворса будет делать.

Другие вопросы по тегам