Java 7 はStrings、以下のコードのような切り替えをサポートしています
switch (month.toLowerCase()) {
case "january":
monthNumber = 1;
break;
case "february":
monthNumber = 2;
break;
default:
monthNumber = 0;
break;
}
equals()Javaは各Stringケースでメソッドを呼び出しますか? または、またはに依存しています==かintern()?
これは単に次と同等ですか:
String month = month.toLowerCase();
if("january".equals(month)){
monthNumber = 1;
}else if("february".equals(month)){
monthNumber = 1;
}..
アップデート:
スイッチ式の文字列は、メソッドが使用されているかのように、各ケース ラベルに関連付けられた式と比較されます。
String.equals
ドキュメントが指摘するように、動作はあたかもequals()呼び出されたかのようです。