如果我错了,请告诉我,但根据我的经验,instanceof 调用没有执行我需要的操作。
我有一个抽象类,它实现一个接口(interface)并显式覆盖该接口(interface)中的所有方法。我有这个类的一个子类。如何判断子类是否是接口(interface)的实例?
public interface IAnimal {
public void eat();
}
<小时/>
public abstract class Dog implements IAnimal {
@Override
public void eat(){
//eat things
}
public abstract void bark();
}
<小时/>
public class Beagle extends Dog {
@Override
public void bark(){
//specific bark
}
}
<小时/>
所以我有一个 Beagle 的实例,我如何确定它是否是 IAnimal 的实例?
最佳答案
你可以做
IAnimal.class.isAssignableFrom(Beagle.class)
或
IAnimal.class.isAssignableFrom(someObjectInstance.getClass());
甚至是使用接口(interface)的实例
if (object instanceof IAnimal) { }
关于java - java中判断一个类的父类(super class)是否实现了某个接口(interface),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16181520/