Оператор instanceof
Оператор instanceof проверяет, является ли объект экземпляром указанного класса или реализует ли он указанный интерфейс. В левом операнде мы передаем проверяемый объект, в правом - класс или интерфейс, с которым сравниваем. Оператор возвращает true, если объект совместим с указанным типом, и false в противном случае. Если левый операнд равен null, оператор всегда возвращает false.
Синтаксис
object instanceof Type
Пример
Давайте проверим, является ли объект типа String экземпляром класса String и класса Object:
public class Main
{
public static void main(String[] args)
{
String str = "abcde";
System.out.println(str instanceof String);
System.out.println(str instanceof Object);
}
}
Результат выполнения кода:
true
true
Пример
Давайте проверим, является ли объект типа String экземпляром класса Integer:
public class Main
{
public static void main(String[] args)
{
String str = "abcde";
System.out.println(str instanceof Integer);
}
}
Результат выполнения кода:
false
Пример
Давайте проверим, реализует ли объект типа ArrayList интерфейс List:
import java.util.ArrayList;
import java.util.List;
public class Main
{
public static void main(String[] args)
{
ArrayList<Integer> list = new ArrayList<>();
System.out.println(list instanceof List);
}
}
Результат выполнения кода:
true
Пример
Давайте проверим, является ли значение null экземпляром класса String:
public class Main
{
public static void main(String[] args)
{
String str = null;
System.out.println(str instanceof String);
}
}
Результат выполнения кода:
false