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()
呼び出されたかのようです。