Pascal4eg / Java

 Java | Фишки и трюки

instanceof в Java 16

Object string = "this is string!";
if (string instanceof String realString) {
    System.out.println(realString);
}
Object object = 42;
if (!(object instanceof Number number)) {
    throw new IllegalArgumentException("this is not a Number!");
}
System. out.println (number);

Чтобы проверить, к какому классу относится объект, используют оператор instanceof. Если нужно проверить объект и привести его к нужному классу, раньше писали условие с instanceof, объявляли переменную проверяемого типа и присваивали ей проверяемый объект, предварительно приведя его к проверяемому классу.

Начиная с Java 16 присвоение не требуется. Значение переменной можно задать прямо в выражении instanceof, дописав имя переменной после проверяемого типа.

📌 Если уловие построено с отрицанием, то новая переменная будет доступна вне блока условия.