Как определить, что новое значение было добавлено в перечисление и не обрабатывается переключателем

Время от времени мне приходится добавлять новое значение в тип перечисления в моем проекте.

public enum Day {
  SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, 
   FILENOTFOUND //this one is new one
}

Я бы хотел, чтобы для каждого переключателя, который я выполнял, была ошибка времени компиляции have, которое не обрабатывает новое значение, например это:

switch (color) {
        case MONDAY: 
        case TUESDAY: 
        case WEDNESDAY: 
        case THURSDAY: 
                    System.out.println("Mondays are bad.");
                     break;

        case FRIDAY: System.out.println("Fridays are better.");
                     break;

        case SATURDAY:
        case SUNDAY: System.out.println("Weekends are best.");
                     break;
    } 

Наличие значения по умолчанию: которое генерирует какое-то исключение, недостаточно, я бы хотел, чтобы это было во время компиляции.

Я не думаю, что это возможно, но возможно, у кого-то есть хитрый трюк ...

Я думал, что у Findbugs есть правило, чтобы их находить, но я видел только это: Eq: Метод Covariant equals (), определенный для enum (EQ_DONT_DEFINE_EQUALS_FOR_ENUM)

EDIT: Я выбираю ответ Марка, я использую Eclipse, и это звучит именно так, как мне нужно! Я вообще не эксперт по поисковым ошибкам, поэтому я, возможно, пропустил такую ​​функциональность, хотя я так не думаю.

6
задан Persimmonium 22 October 2010 в 20:22
поделиться