问题描述
如果接口扩展另一个接口,如何在Java中反射性地检查?我试过这个:
for (Class<?> aClass : classes) {
int modifier = aClass.getModifiers();
if (Modifier.isInterface(modifier)) {
if (aClass.getSuperclass() != null && aClass.getSuperclass().equals(TopWorker.class)) {
log.info(aClass.getSimpleName() + " extends abstract " + TopWorker.class.getSimpleName());
}
}
}
检查超类不起作用(接口不是类) 谢谢
解决方法
一个接口可以扩展多个接口(就像类可以实现多个接口一样)。因此,检查扩展了哪些接口只需调用 aClass.getInterfaces()
。
对于您的用例,调用 isAssignableFrom
可能更简单:
if (TopWorker.class.isAssignableFrom(aClass)) {
}