Мне просто интересно, почему switchоператор Java 7 не поддерживает nullрегистр, а вместо этого бросает NullPointerException? См. Прокомментированную строку ниже (пример взят из статьи 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;
}
Это позволило бы избежать ifусловия проверки нуля перед каждым switchиспользованием.
nullвызовет исключение. Выполните ifпроверку null, а затем перейдите к switchвыписке.
NullPointerExceptionесли выражение оценивается как nullво время выполнения] - лучший результат, чем молчаливый пропуск всего оператора switch или выбор выполнения операторов (если есть) после метка по умолчанию (если есть).