Java 7 switch
ステートメントがnull
ケースをサポートせず、代わりにスローするのはNullPointerException
なぜですか。以下のコメント付きの行を参照してください(例については、Javaチュートリアルの記事switch
から引用しています)。
{
String month = null;
switch (month) {
case "january":
monthNumber = 1;
break;
case "february":
monthNumber = 2;
break;
case "march":
monthNumber = 3;
break;
//case null:
default:
monthNumber = 0;
break;
}
return monthNumber;
}
これにより、if
すべてのswitch
使用前にnullチェックの条件が回避されます。
null
すると、例外が発生します。のif
チェックを実行してnull
から、switch
ステートメントに進みます。
NullPointerException
式が評価されるかどうかをスローするnull
]は、switchステートメント全体を暗黙的にスキップするか、または後にステートメント(ある場合)を実行することを選択するよりも良い結果です。デフォルトのラベル(存在する場合)。