Сравнивание объектов через instanceof
Есть метод, которому в качестве аргумента может передаться объект любого класса, данный метод должен проверить посредством instanceof к какому классу принадлежит передаваемый объект:
public class Alligator implements Predator {}
public class Panda implements Herbivore {}
public class Check{
Object naturalEnemy = new Alligator();// Проверяемый по умолчанию класс, !!!!может изменятся!!!!!!
public static void main(String[] args){
System.out.println(""+checkAnimal(new Alligator()));//
System.out.println(""+checkAnimal(new Panda()));
}
public boolean checkAnimal(Object animal){
if(naturalEnemy instanceof animal.getClass()) return true;// Не работает :(
//if(naturalEnemy instanceof Predator) return true;// Работает, но подобный подход не приемлим.
}
}
Подвох в том что ни один из сравниваемых объектов не известен, и выводить клас в текстовую строку тоже не приемлимо. Помогите кто чем может. Заранее спасибо.
Источник: Stack Overflow на русском