我在回答 Java 测试时遇到了这个问题:



正确答案是 B 。老实说,我通过排除另一个明显错误的案例来回答这个问题,但我实际上无法理解这个问题的重点。谁能解释为什么这是真的?哪里有帮助?

最佳答案

我想这意味着你应该保护自己不要错过开关盒。

假设你有一个 enum Color {red, green} 和代码中的这个开关:

switch(color) {
   case red:
       doSomethingRed();
       break;
   case green:
       doSomethingGreen();
       break;
}

如果将来您添加新颜色 blue ,您可以忘记在开关中为它添加一个案例。
将失败的断言添加到默认情况下会抛出 AssertionError 并且你会发现你的错误。
switch(color) {
   case red:
       doSomethingRed();
       break;
   case green:
       doSomethingGreen();
       break;
   default:
       assert false : "Oops! Unknown color"
}

关于java - 结合 assert 和 switch 语句,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26440506/

10-14 07:30