Паттерны записей (деструктуризация)
Деструктурировать записи прямо в паттернах — извлекать поля за один шаг.
Сравнение кода
✕ 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
Паттерны записей (деструктуризация)
Доступно
Доступно в JDK 21 LTS (сент. 2023)
Как это работает
Паттерны записей позволяют разложить компоненты записи непосредственно в instanceof и switch. Вложенные паттерны также поддерживаются, что обеспечивает глубокое сопоставление без промежуточных переменных.
Связанная документация
Доказательство