如何检查一个对象是否实现了一个接口?
如何检查一些类是否实现接口? 当有:
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) { //... }
通常用于任何类的AnInterface
和anInstance
:
AnInterface.class.isAssignableFrom(anInstance.getClass());
如果你想要一个像public void doSomething([Object implements Serializable])
你可以像这样inputpublic void doSomething(Serializable serializableObject)
。 你现在可以传递任何实现了Serializable的对象,但是使用serializableObject
你只能访问从Serializable接口实现的对象中的方法。