使用反射检查接口是否正在扩展 Java 中的另一个接口

Check if interface is extending another interface in Java using reflection

如果接口扩展了另一个接口,如何在 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());
                }
            }
        }

检查 Superclass 不工作(接口不是 class) 谢谢

一个接口可以扩展多个接口(就像类可以实现多个接口一样)。因此,检查哪些接口被扩展只是调用 aClass.getInterfaces().

的问题

对于您的用例,调用 isAssignableFrom:

可能更简单
if (TopWorker.class.isAssignableFrom(aClass)) {

}