switch式
値を返すswitch式 — breakなし、フォールスルーなし。
コード比較
✕ Java 8
String msg;
switch (day) {
case MONDAY:
msg = "Start";
break;
case FRIDAY:
msg = "End";
break;
default:
msg = "Mid";
}
✓ Java 14+
String msg = switch (day) {
case MONDAY -> "Start";
case FRIDAY -> "End";
default -> "Mid";
};
このコードに問題がありますか? お知らせください。
モダンな方法が優れている理由
値を返す
switch結果を直接代入できます — 一時変数は不要です。
フォールスルーなし
アロー構文により、breakの書き忘れによる意図しないフォールスルーがなくなります。
網羅性チェック
コンパイラがすべてのケースをカバーしているか確認します。
旧来のアプローチ
switch文
モダンなアプローチ
switch式
JDKバージョン
14
難易度
初級
JDKサポート
switch式
利用可能
JDK 14(2020年3月)以降、広く利用可能
仕組み
switch式は値を直接返し、アロー構文でフォールスルーのバグを防ぎ、コンパイラが網羅性を検証します。これにより、エラーが起きやすい文形式を置き換えられます。
関連ドキュメント