Mi chiedo solo perché l' switch
istruzione Java 7 non supporta un null
caso e invece lancia NullPointerException
? Vedere la riga commentata di seguito (esempio tratto dall'articolo Tutorial Java suswitch
):
{
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;
}
Ciò avrebbe evitato una if
condizione per il controllo nullo prima di ogni switch
utilizzo.
null
causerà un'eccezione. Esegui un if
controllo null
, quindi vai all'estratto switch
conto.
NullPointerException
se l'espressione restituisce null
in runtime] è un risultato migliore rispetto al saltare silenziosamente l'intera istruzione switch o scegliere di eseguire le istruzioni (se presenti) dopo etichetta predefinita (se presente).