1. ホーム
  2. java

[解決済み] オブジェクトがインターフェースを実装しているかどうかを確認する方法は?[重複]。

2022-02-10 18:11:12

質問

あるクラスがインターフェイスを実装しているかどうかを確認するには? を持っている場合。

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() でオーバーライドされます。 Gorgon を正しく返せるようになりました。 level の新しい gor が作成されましたか?

解決方法は?

インスタンスの場合

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

そして、次のようにします。

gor instanceof Monster

クラスのインスタンスに対して以下を実行します。

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