Нужно сравнить два объекта на основе класса, который они реализуют? Когда сравнивать, используя getClass()
и когда getClass().getName()
? Существует ли разница между этими подходами для сравнения двух типов (имен) классов объектов?Сравнение двух классов по его типам или именам классов
public abstract class Monster { ... }
public class MonsterTypeOne extends Monster { ... }
public class MonsterTypeTwo extends Monster { ... }
Monster monster = MonsterTypeOne();
Monster nextMonster = MonsterTypeTwo();
if(nextMonster.getClass().getName().equals(monster.getClass().getName()))// #1
if(nextMonster.getClass().equals(monster.getClass()))// #2
EDIT 1
А что?
nextMonster.getClass().equals(MonsterTypeOne.class)
вам нужно .equals с GetClass ли? Вернуть класс возвращает объект, отличный от String. +1 интересный вопрос. – jmort253