Como detectar um novo valor foi adicionado a uma enumeração e não é tratado em uma opção
De tempos em tempos, tenho que adicionar um novo valor a um tipo de enumeração no meu projeto.
public enum Day {
SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY,
FILENOTFOUND //this one is new one
}
O que eu gostaria é de ter umerro de tempo de compilação para cada opção que tenho que não está tratando o novo valor, como este:
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;
}
Ter um padrão: que gera alguma exceção não é bom o suficiente, gostaria que fosse tempo de compilação.
Eu não acho que isso é possível, mas talvez alguém tenha um truque legal ...
Eu pensei que Findbugs teria uma regra para encontrá-los, mas eu só vi isso:Eq: método covariável equals () definido para enum (EQ_DONT_DEFINE_EQUALS_FOR_ENUM)
EDITAR: Estou escolhendo a resposta de Mark, eu uso o Eclipse e isso soa exatamente como o que eu precisava! Como não sou especialista em findbugs, posso ter perdido essa funcionalidade, apesar de achar que não.