And*_*bie 6 java enums switch-statement
假设我创建了一个枚举,例如下面的:
public enum MyEnum {
A,
B,
C;
}
Run Code Online (Sandbox Code Playgroud)
并且有一个 switch 语句(如下所示),其中每个枚举值都有一个 case 语句,但我还添加了一个默认值来抛出 IllegalArgumentException。(如果添加了一个新的枚举值,那么如果新值被传递,那么有人更有可能会注意到该 case 语句出了问题。我的想法是异常比日志或尝试处理新值更引人注目案件。)
switch(myEnum) {
case A:
//do something
break;
case B:
//do something
break;
case C:
//do something
break;
default:
throw new IllegalArgumentException("Unrecognized enum type!");
}
Run Code Online (Sandbox Code Playgroud)
除非我遗漏了某些东西,否则从理论上讲,如果不添加新的枚举值或更改 switch 语句,默认值应该是无法访问的。
所以我想知道的是,如果我正在编写代码覆盖率的 JUnit 测试,是否有办法强制切换到默认语句而不更新应用程序代码?