Zastanawiam się tylko, dlaczego instrukcja Java 7 switch
nie obsługuje null
przypadku i zamiast tego wyrzuca NullPointerException
? Zobacz skomentowaną linię poniżej (przykład zaczerpnięty z artykułu Java Tutorialsswitch
):
{
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;
}
Pozwoliłoby to uniknąć if
warunku zerowego sprawdzania przed każdym switch
użyciem.
null
spowoduje wyjątek. Wykonać if
czek null
, a następnie przejść do switch
zestawienia.
NullPointerException
jeśli wyrażenie ma wartość null
w czasie wykonywania] jest lepszym wynikiem niż ciche pomijanie całej instrukcji switch lub wybieranie wykonania instrukcji (jeśli istnieją) po etykieta domyślna (jeśli istnieje).