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

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

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";
}
}
}

Gorgon中重写的方法 getLevel()是否正确,以便返回新创建的 gorlevel

154161 次浏览

举个例子

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

那就做吧

gor instanceof Monster

对于 Class 实例,请执行以下操作

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

使用

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

如果你想要一个类似于 public void doSomething([Object implements Serializable])的方法,你可以像这样键入 public void doSomething(Serializable serializableObject)。现在,您可以传递任何实现 Serializer 的对象,但是使用 serializableObject时,您只能从 Serializer 接口访问在该对象中实现的方法。

对于任何类别的 AnInterfaceanInstance,一般来说:

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