Java 7 obsługuje przełączanie z Strings
jak poniższy kodCzy instrukcja przełącznika Java 7 z użyciem String używa metody equals()?
switch (month.toLowerCase()) {
case "january":
monthNumber = 1;
break;
case "february":
monthNumber = 2;
break;
default:
monthNumber = 0;
break;
}
Czy Java wywołać metodę equals()
na każdym String
przypadku? Lub opiera się na ==
lub intern()
?
Czy to po prostu odpowiednik:
String month = month.toLowerCase();
if("january".equals(month)){
monthNumber = 1;
}else if("february".equals(month)){
monthNumber = 1;
}..
UPDATE:
String w wyrażeniu przełącznik jest w porównaniu z wyrażeń związane z każdorazowo etykiecie jakby metoda
String.equals
sprzyjały używane.
Dokumenty podkreślają, że zachowanie jest takie, jak gdyby wywołano equals()
.
1) powinny Myślę, że musiałby to, ponieważ nie ma sensu, jeśli nie zrobił, prawda? 2) Czy spojrzałeś na kod źródłowy? –
@HovercraftFullOfEels - Może użyć '==' i polegać na 'intern '- ale myślę, że w wielu przypadkach by się złamało. – OldCurmudgeon
@ OldCurmudgeon: zbyt ryzykowne, pomyślałem. –