Language Начинающий

Совместить проверку типа и приведение в одном шаге с помощью pattern matching.

✕ Java 8
if (obj instanceof String) {
    String s = (String) obj;
    System.out.println(s.length());
}
✓ Java 16+
if (obj instanceof String s) {
    IO.println(s.length());
}
Заметили проблему в этом коде? Сообщите нам.
🔄

Нет лишнего приведения

Проверка типа и привязка переменной происходят в одном выражении.

📏

Меньше строк

Одна строка вместо двух — строка с приведением исчезает полностью.

🛡️

Безопасность области видимости

Переменная паттерна находится в области видимости только там, где тип гарантирован.

Старый подход
instanceof + приведение типа
Современный подход
Переменная паттерна
Начиная с JDK
16
Сложность
Начинающий
Pattern Matching для instanceof
Доступно

Доступно в JDK 16 (март 2021)

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