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
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…