Zastanawiam się tylko, dlaczego instrukcja Java 7 switchnie obsługuje nullprzypadku 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ąć ifwarunku zerowego sprawdzania przed każdym switchużyciem.
nullspowoduje wyjątek. Wykonać ifczek null, a następnie przejść do switchzestawienia.
NullPointerExceptionjeśli wyrażenie ma wartość nullw 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).