È necessario confrontare due oggetti in base alla classe che implementano? Quando confrontare usando getClass()
e quando getClass().getName()
? C'è qualche differenza tra questo approccio per confrontare due tipi di classi di Oggetti (nomi)?Confronto di due classi in base al tipo o al nome della classe
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
Che dire:?
nextMonster.getClass().equals(MonsterTypeOne.class)
Avete bisogno .equals con getClass? Ottieni resi di classe un oggetto non String che io credo. +1 domanda interessante. – jmort253