Почему у меня не получается использовать во втором аргументе операции instanceof переменную типа Class? Пример:
Class mClass= SomeClass.class;
If(someObject instanceof mClass)
Return;
П.с. Забыл добавить, что instanceof мне нужен потому что в условии ожидается что наследник указанного класса так же вернёт истину. Такое возможно с переменной?
Если класс, принадлежность объекта к которому вы хотите проверить, не известен на этапе компиляции - делайте это так:
if (someObject.getClass().equals(mClass)) {
}
Вариант с isInstance проверит еще все суперклассы вашего someObject.
if (mClass.isInstance(someObject)) {
}
1 вариант Работает с типом
if (someObject instanceof SomeClass)
return;
2 вариант Работает с экземпляром типа
if (SomeClass.class.isAssignableFrom(someObject.getClass()))
return;
В общем если кому то тоже интересно, то вот такой ответ я придумал на свой же вопрос
public boolean isInstanceOf(Class fClass)
{
Class fThis=this.getClass();
while(fThis!=ArhiClasd.class)
{
if(fThis==fClass)
return true;
else
fThis=fThis.getSuperclass();
}
return false;
}
ArhiClass это тот самый самый супер класс, до которого нам интересны все совпадения. Можете указать хоть Object.
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости