Pattern Matching – это долгожданная фича в статусе preview в Java 14. С помощью pattern matching можно более удобно использовать проверку и приведение типов в выражении instanceof.
До появления функциональности pattern matching программисты всегда писали подобный код:
Object obj = "Hello, World"; if (obj instanceof String) { String s = (String) obj; System.out.println(s.length()); }
То есть, если нужно безопасно привести переменную одного типа к другому типу, требуется проверить, является ли переменная объектом нужного типа, а затем привести этот объект к нужному типу. И только после приведения типов можно ссылаться к специфическим методам нужного типа.
Pattern matching упрощает данную задачу – теперь можно сразу же объявить переменную вслед за типов, на который мы проверяем объект:
Object obj = "Hello, World"; if (obj instanceof String s) { System.out.println(s.length()); }
Также интересно, что в выражении instanceof можно сразу же вызывать методы того типа, к которому приводится объект:
if (obj instanceof String s && s.length() > 10) { System.out.println(s.length()); }