Es müssen zwei Objekte basierend auf der implementierten Klasse verglichen werden? Wann zu vergleichen mit getClass()
und wenn getClass().getName()
? Gibt es einen Unterschied zwischen diesen Ansätzen, um zwei Objektklassen (Namen) zu vergleichen?Vergleichen zweier Klassen anhand ihrer Typen oder Klassennamen
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
Was?
nextMonster.getClass().equals(MonsterTypeOne.class)
Haben Sie .equals mit getClass benötigen? Get class gibt ein Nicht-String-Objekt zurück, das ich glaube. +1 interessante Frage. – jmort253