4.15. レコードパターン (プレビュー)


Red Hat build of OpenJDK 21 では、レコードパターンが導入されています。これは、レコード値を分解するために Java プログラミング言語を強化するプレビュー機能です。この機能により、instanceof Operator を使用する変数の宣言と割り当てが可能になります。

属性 xy を持つ Point という名前のレコードの次の宣言を考えてみましょう。

record Point(int x, int y) {}
Copy to Clipboard

前述の宣言に基づいて、次のコードは値が Point のインスタンスであるかどうかをテストし、値から x および y コンポーネントを直接抽出することもできます。

if (obj instanceof Point(int x, int y)) {
    	System.out.println(x+y);
}
Copy to Clipboard

この機能は、他のレコード内にネストされたレコードでも使用できます。たとえば、属性が Point レコードと Color 列挙型の ColoredPoint レコードの属性を持つ、Rectangle という名前のレコードに対する以下の宣言を考えてみます。

record Point(int x, int y) {}
enum Color { RED, GREEN, BLUE }
record ColoredPoint(Point p, Color c) {}
record Rectangle(ColoredPoint upperLeft, ColoredPoint lowerRight) {}
Copy to Clipboard

前述の宣言に基づいて、次のコードは値が Rectangle のインスタンスであるかどうかをテストし、左上の点から色を抽出できます。

if (r instanceof Rectangle(ColoredPoint ul, ColoredPoint lr)) {
     	System.out.println(ul.attribute());
}
Copy to Clipboard

詳細は、JEP 440: Record Patterns を参照してください。

トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

Theme

© 2025 Red Hat