TGViewer
Java Ready | Программирование Java Ready | Программирование @java_ready · 9.25K subscribers
Post #2138 1.51K
Как в Java чище проверять тип через pattern matching?

Раньше при проверке типа часто писали так:
if (value instanceof String) {
String text = (String) value;
System.out.println(text.length());
}


Код рабочий, но в нём есть лишнее приведение типа. Сначала Java уже проверила, что value это String, а потом мы всё равно руками делаем cast.

В современном Java можно записать короче:
if (value instanceof String text) {
System.out.println(text.length());
}


Переменная text доступна только там, где проверка точно прошла.

Это удобно для валидации:
if (input instanceof String text && !text.isBlank()) {
return text.trim();
}


И для обработки разных входных объектов:
if (event instanceof LoginEvent login) {
audit(login.userId());
}


При этом Java не даст использовать переменную вне безопасной области:
if (!(value instanceof String text)) {
return;
}

System.out.println(text.length());


Здесь text уже доступен после return, потому что дальше код дойдёт только если value действительно String.

Такой синтаксис особенно приятен в коде с Object, событиями, DTO, sealed-иерархиями и обработкой внешних данных.

👉 Java Ready | #совет
  • 🔥 9
  • 👍 6
  • ❤ 5
More from @java_ready
  1. Oct 6, 2026Безопасная настройка retry для всей системы! В статье Java-разработчик делится опытом внед…
  2. Oct 5, 2026Почему после Stream.toList() нельзя добавить элемент? При работе со Stream часто нужно соб…
  3. Oct 5, 2026Как оплачивать зарубежные сервисы в 2026 году? Можно бегать между посредниками и бояться б…
  4. Oct 5, 2026Находим три самых популярных товара! Есть поток покупок с повторяющимися названиями. Постр…
  5. Oct 2, 2026photo post
  6. Oct 1, 2026Следим за появлением файлов в папке через WatchService! Создадим наблюдатель и зарегистрир…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →