Новые варианты применения 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!»);
}
То есть проверка !(object instanceof Number number) выдаёт результат false, и после выхода из if мы можем использовать number для реализации своей логики.
Post #477
2.03K

- 👍 7
- ❤ 1