Время от времени мне приходится добавлять новое значение в тип enum в моем проекте.
public enum Day {
SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY,
FILENOTFOUND //this one is new one
}
Мне бы хотелось, чтобы ошибка времени компиляции для каждого моего переключателя, который не обрабатывает новое значение, как этот:
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: ковариантный метод equals (), определенный для enum (EQ_DONT_DEFINE_EQUALS_FOR_ENUM)
РЕДАКТИРОВАТЬ: Я выбираю ответ Марка, я использую Eclipse, и это звучит так же, как мне нужно! Я вообще не эксперт по поиску багов, поэтому мог пропустить такую функциональность, хотя я так не думаю.