如何检查对象是否实现了接口?

2022-08-31 07:49:00

如何检查某些类是否实现了接口?当有:

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

如何检查是否实现接口?gorMonster

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);

答案 2

if (gor instanceof Monster) {
    //...
}