如何在交换机中使用NULL

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (19)
Integer i = ...

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

在上面的代码中,我不能在Switchcase语句中使用NULL。我怎么才能做不同的事呢?

提问于
用户回答回答于

这是不可能的switch语句。检查nullswitch:

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

不能使用任意对象switch陈述*。编译器没有抱怨的原因switch (i)何地iInteger是因为Java自动解压缩Integer转到int。正如assylias已经说过的,取消拳击将抛出一个NullPointerException何时inull.

因为Java 7可以使用Stringswitch陈述。

用户回答回答于
switch ((i != null) ? i : DEFAULT_VALUE) {
        //...
}

扫码关注云+社区