Нужно ли сравнивать два объекта на основе класса, который они реализуют? Когда сравнивать 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
ИЗМЕНИТЬ 1
Как насчет:?
nextMonster.getClass().equals(MonsterTypeOne.class)