小编典典

如何在switch中使用null

all

Integer i = ...

switch (i) {
    case null:
        doSomething0();
        break;    
}

在上面的代码中,我不能在 switch case 语句中使用 null。我怎样才能做到这一点?我不能使用default,因为那时我想做其他事情。


阅读 406

收藏
2022-05-19

共1个答案

小编典典

switch这对于 Java 中的语句是不可能的。null之前检查switch

if (i == null) {
    doSomething0();
} else {
    switch (i) {
    case 1:
        // ...
        break;
    }
}

您不能在switch语句*中使用任意对象。编译器不抱怨switch (i)where iis anInteger的原因是因为 Java
自动拆箱Integerint. 正如 assylias 已经说过的,拆箱会抛出NullPointerExceptionwhen iis
null

*从 Java 7 开始,您可以使用Stringinswitch语句。

Oracle Docs -
Switch
中有关switch(包括带有空变量的示例)的更多信息

2022-05-19