如何检查是否一个对象实现的接口?(How to check if an object impleme

2019-07-28 23:50发布

如何检查,如果一些类实现接口? 当具有:

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产生的?

Answer 1:

对于一个实例

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

然后做

gor instanceof Monster

对于一个类实例做

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


Answer 2:

使用

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


Answer 3:

通常,对于AnInterfaceanInstance任何类的:

AnInterface.class.isAssignableFrom(anInstance.getClass());


Answer 4:

如果你想的方法等public void doSomething([Object implements Serializable])你可以只输入像这样public void doSomething(Serializable serializableObject) 现在,您可以通过它实现Serializable接口的任何对象,但使用serializableObject你只能访问从Serializable接口的对象实现的方法。



文章来源: How to check if an object implements an interface?