実装するクラスに基づいて2つのオブジェクトを比較する必要がありますか?getClass()
いつ使用して比較するのgetClass().getName()
か?2つのObjectsクラスタイプ(名前)を比較するこのアプローチに違いはありますか?
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)