Метод isInstance
Метод isInstance класса Class проверяет,
является ли переданный объект экземпляром класса,
который представляет данный объект Class.
В единственный параметр мы передаем объект,
который нужно проверить на принадлежность классу.
Метод возвращает true, если объект является
экземпляром этого класса или его подкласса,
и false в противном случае.
Метод isInstance эквивалентен оператору
instanceof, но работает во время выполнения
программы, когда класс известен только как объект
типа Class. Если переданный объект равен
null, метод всегда возвращает false.
Синтаксис
Class clazz = SomeClass.class;
boolean res = clazz.isInstance(obj);
Пример
Проверим, является ли строка экземпляром класса
String:
public class Main
{
public static void main(String[] args)
{
Class clazz = String.class;
Object obj = "abcde";
boolean res = clazz.isInstance(obj);
System.out.println(res);
}
}
Результат выполнения кода:
true
Пример
Проверим, является ли число экземпляром класса
String:
public class Main
{
public static void main(String[] args)
{
Class clazz = String.class;
Object obj = 12345;
boolean res = clazz.isInstance(obj);
System.out.println(res);
}
}
Результат выполнения кода:
false
Пример
Метод isInstance учитывает наследование.
Проверим, является ли объект подкласса экземпляром
родительского класса:
public class Main
{
static class Parent
{
}
static class Child extends Parent
{
}
public static void main(String[] args)
{
Class clazz = Parent.class;
Object obj = new Child();
boolean res = clazz.isInstance(obj);
System.out.println(res);
}
}
Результат выполнения кода:
true
Пример
Если передать null, метод всегда вернет
false:
public class Main
{
public static void main(String[] args)
{
Class clazz = String.class;
Object obj = null;
boolean res = clazz.isInstance(obj);
System.out.println(res);
}
}
Результат выполнения кода:
false
Смотрите также
-
метод
cast,
который приводит объект к данному классу -
метод
isAssignableFrom,
который проверяет совместимость классов -
метод
forName,
который загружает класс по имени -
метод
getName,
который возвращает имя класса