¿Hay necesidad de comparar dos objetos según la clase que implementan? ¿Cuándo comparar usando getClass()
y cuándo getClass().getName()
? ¿Hay alguna diferencia entre estos enfoques para comparar dos tipos de clases de objetos (nombres)?Comparación de dos clases por sus tipos o nombres de clase
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
EDITAR 1
¿Qué hay de:?
nextMonster.getClass().equals(MonsterTypeOne.class)
¿Necesita .equals con getClass? La clase devuelve un objeto que no es de Cadena, creo. +1 pregunta interesante. – jmort253