Может ли кто-нибудь рассказать мне, что является функцией if (month == null) { return monthNumber; } в приведенном ниже коде. Я видел этот код в учебнике Java Oracle. Я удалил оператор if выше, а приведенный ниже код работает нормально. Является ли заявление if ненужным или оно включено по какой-то причине, неизвестной мне.Если заявление, необходимо ли этому конкретному коду или оно избыточно?
public class StringSwitchDemo {
public static int getMonthNumber(String month) {
int monthNumber = 0;
if (month == null) {
return monthNumber;
}
switch (month.toLowerCase()) {
case "january":
monthNumber = 1;
break;
case "february":
monthNumber = 2;
break;
case "march":
monthNumber = 3;
break;
case "april":
monthNumber = 4;
break;
case "may":
monthNumber = 5;
break;
case "june":
monthNumber = 6;
break;
case "july":
monthNumber = 7;
break;
case "august":
monthNumber = 8;
break;
case "september":
monthNumber = 9;
break;
case "october":
monthNumber = 10;
break;
case "november":
monthNumber = 11;
break;
case "december":
monthNumber = 12;
break;
default:
monthNumber = 0;
break;
}
return monthNumber;
}
public static void main(String[] args) {
String month = "";
int returnedMonthNumber =
StringSwitchDemo.getMonthNumber(month);
if (returnedMonthNumber == 0) {
System.out.println("Invalid month");
} else {
System.out.println(returnedMonthNumber);
}
}
}
Это проверка на возможность передачи значения «null» методу. Вы можете заменить его на ['Ojbects.requireNonNull'] (https://docs.oracle.com/javase/8/docs/api/java/util/Objects.html#requireNonNull-T-), но это приведет к созданию 'NullPointerException'. В принципе, на основе того, что метод пытается сделать, это потребуется. – MadProgrammer