オブジェクトがインターフェースを実装しているかどうかを確認するにはどうすればいいですか? [重複] 質問する

オブジェクトがインターフェースを実装しているかどうかを確認するにはどうすればいいですか? [重複] 質問する

あるクラスがインターフェースを実装しているかどうかを確認するにはどうすればよいでしょうか?

Character.Gorgon gor = new Character.Gorgon();

インターフェースgorを実装しているかどうかを確認するにはどうすればいいですか?Monster

public interface Monster {

    public int getLevel();

    public int level = 1;
}

public class Character {
    public static class Gorgon extends Character implements Monster {
        public int level;
        @Override
        public int getLevel() { return level; }

        public Gorgon() {
            type = "Gorgon";
        }
    }
}

メソッドは正しくgetLevel()オーバーライドされており、新しく作成されたものを返すことができますか?Gorgonlevelgor

ベストアンサー1

例えば

Character.Gorgon gor = new Character.Gorgon();

次に

gor instanceof Monster

クラスインスタンスの場合は

Class<?> clazz = Character.Gorgon.class;
Monster.class.isAssignableFrom(clazz);

おすすめ記事