4.8. switch ステートメントのパターンマッチング


Red Hat build of OpenJDK 21 では、switch ステートメントのパターンマッチングによって Java プログラミング言語が強化されています。この機能拡張により、それぞれ特定のアクションを持つさまざまなパターンに対して switch 式をテストし、複雑なデータ指向クエリーを簡潔かつ安全に表現できるようになります。

オブジェクトのクラスに基づく switch ステートメントを実装できます。

以下に例を示します。

switch (obj) {
		case Integer i -> String.format("int %d", i);
		case String s  -> String.format("String %s", s);
		default        -> obj.toString();
	};
Copy to Clipboard

switch ステートメントの case ブロック内に when ガードを入れ子にし、より複雑な switch ステートメントを実装することもできます。

以下に例を示します。

switch (response) {
    	case null -> { }
    	case String s when s.equalsIgnoreCase("YES") -> {
        	System.out.println("You got it");
    	}
    	case String s when s.equalsIgnoreCase("NO") -> {
        	System.out.println("Shame");
    	}
    	case "n", "N" -> {
        	System.out.println("Shame");
    	}
    	case String s -> {
        	System.out.println("Sorry?");
    	}
}
Copy to Clipboard

アプリケーションで switch ステートメントを使用する場合は、これらのステートメントが最新であることを確認してください。

詳細は、JEP 441: Pattern Matching for switch を参照してください。

トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat