➡️
Новые варианты применения instanceof из Java 16Чтобы проверить, к какому классу относится объект, используют оператор instanceof. Если нужно проверить объект и привести его к нужному виду, раньше объявляли переменную, присваивали ей тип, а затем проверяли объект:
Object string = "this is string!";
if(string instanceof String){
String realString = (String) string;
System.out.println(realString);
}
✔️
Начиная с Java 16 присвоение не требуется. Значение переменной можно задать прямо в выражении:
if(string instanceof String realString){
System.out.println(realString);
}
🗣️ Если условие проверки не выполняется, оператор instanceof не ограничивается фигурными скобками внутри условия if, а проверяет код дальше:
Object object = 23;
if (!(object instanceof Number number)) {
throw new IllegalArgumentException("this is not a Number!");
}
System.out.prin
⚙️ То есть проверка !(object instanceof Number number) выдаёт результат false, и после выхода из if мы можем использовать number для реализации своей логики.
Java Learning 👩💻