Language Средний

Деструктурировать записи прямо в паттернах — извлекать поля за один шаг.

✕ 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);
}
Заметили проблему в этом коде? Сообщите нам.
🎯

Прямой доступ

Обращаться к компонентам записи без ручного вызова аксессоров.

🪆

Вложенность

Паттерны можно вкладывать — сопоставлять внутренние записи в одном выражении.

📏

Компактный код

Пять строк превращаются в две — меньше церемоний, та же ясность.

Старый подход
Ручной доступ к полям
Современный подход
Деструктуризация
Начиная с JDK
21
Сложность
Средний
Паттерны записей (деструктуризация)
Доступно

Доступно в JDK 21 LTS (сент. 2023)

Паттерны записей позволяют разложить компоненты записи непосредственно в instanceof и switch. Вложенные паттерны также поддерживаются, что обеспечивает глубокое сопоставление без промежуточных переменных.