1. ホーム

[解決済み】switchでnullを使用する方法

2022-04-01 18:48:08

質問

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

上記のコードでは、switch case文の中でnullを使用することができません。どうすればいいのでしょうか?私は default というのも、その後に別のことをしたいからです。

どのように解決するのですか?

を使用すると、このようなことはできません。 switch ステートメントを使用します。をチェックします。 null の前に switch :

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

で任意のオブジェクトを使用することはできません。 switch ステートメント * . についてコンパイラが文句を言わないのは、そのためです。 switch (i) どこ iInteger は、Javaが自動でアンボックスするためです。 Integer に対して int . すでにassyliasが言っているように、アンボックスは投げます。 NullPointerExceptioni でございます null .

* Java 7以降では String において switch の文言があります。

詳細はこちら switch (ヌル変数の例を含む) オラクルドキュメント - Switch