![](/img/trans.png)
[英]Java Generics: Implement multiple sub-interfaces of an generic interface
[英]How to find all (child) sub-interfaces of a particular interface in Java?
给定一个接口:
public interface A {};
具有继承接口:
public interface B extends A {}
public interface C extends A {}
如何以编程方式扫描以找到B
和C
? 即如何做到这一点:
Type[] types = findAllSubInterfacesOfA(); // Returns [B.class, C.class]
注意:正在尝试在此处查找接口, 而不是类或实例。
下面的代码段应该做到这一点。
public class FindSubinterfaces {
public static void main(String[] args) {
Class clazz = A.class;
Reflections reflections = new Reflections(new ConfigurationBuilder()
.setUrls(Arrays.asList(ClasspathHelper.forClass(clazz))));
Set<Class<? extends List>> subTypes = reflections.getSubTypesOf(clazz);
for (Class c : subTypes) {
if (c.isInterface()) {
System.out.println("subType: " + c.getCanonicalName());
}
}
}
}
interface A {
};
interface B extends A {
}
interface C extends A {
}
class CA implements A {
}
abstract class DC implements C {
}
输出
subInterface: sub.optimal.reflections.B
subInterface: sub.optimal.reflections.C
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.