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

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

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正确覆盖,所以它可以返回创build的新gor level

举个例子

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

然后做

 gor instanceof Monster 

对于一个Class实例来说

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

使用

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

通常用于任何类的AnInterfaceanInstance

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

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