Language 中級

パターン内でレコードを直接分解 — フィールドを1ステップで取り出す。

✕ Java 8
if (obj instanceof Point) {
    Point p = (Point) obj;
    int x = p.getX();
    int y = p.getY();
    System.out.println(x + y);
}
✓ Java 21+
if (obj instanceof Point(int x, int y)) {
    IO.println(x + y);
}
このコードに問題がありますか? お知らせください。
📦

直接の取り出し

アクセサを手動で呼び出さずにレコードのコンポーネントにアクセスできます。

🪆

ネスト可能

パターンをネストできます — 単一の式で内部レコードもマッチングできます。

コンパクトなコード

5行が2行になります — 余分な記述が減り、明快さは変わりません。

旧来のアプローチ
手動アクセス
モダンなアプローチ
分解パターン
JDKバージョン
21
難易度
中級
レコードパターン(分解)
利用可能

JDK 21 LTS(2023年9月)以降、広く利用可能

レコードパターンを使うと、instanceofやswitchでレコードのコンポーネントを直接分解できます。ネストしたパターンもサポートしており、中間変数なしで深いマッチングが可能です。

共有 𝕏 🦋 in