使用反射检查接口是否正在扩展 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)) {
}
如果接口扩展了另一个接口,如何在 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)) {
}