有时我必须在我的项目中为枚举类型添加一个新值。
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: Covariant equals() method defined for enum (EQ_DONT_DEFINE_EQUALS_FOR_ENUM)
编辑:我选择马克的回复,我确实使用 Eclipse,这听起来就像我需要的一样!我根本不是 findbugs 方面的专家,所以我可能错过了这样的功能,尽管我不这么认为。