How to use null in switch

前端 未结 12 1065
南方客
南方客 2020-12-04 10:17
Integer i = ...

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

In the code above I cant use null in switch case state

12条回答
  •  独厮守ぢ
    2020-12-04 11:10

    This is not possible with a switch statement in Java. Check for null before the switch:

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

    You can't use arbitrary objects in switch statements*. The reason that the compiler doesn't complain about switch (i) where i is an Integer is because Java auto-unboxes the Integer to an int. As assylias already said, the unboxing will throw a NullPointerException when i is null.

    * Since Java 7 you can use String in switch statements.

    More about switch (including example with null variable) in Oracle Docs - Switch

提交回复
热议问题