我如何列出特定类的所有子类或特定接口的所有实现类?我可以使用Eclipse来实现,但我想知道如何以编程方式执行此操作。如果您有任何建议,请分享。
看一下reflection,它的基本用法:
Reflections reflections = new Reflections("com.package");
Set<Class<? extends InterfaceExample>> classes = reflections.getSubTypesOf(InterfaceExample.class);
Reflections reflections = new Reflections("com.package");
Set> allClasses =
reflections.getSubTypesOf(Object.class);
- N. berouain依我看,这至少需要以下步骤:
URLClassLoader
及其子类型,即URLClassLoader.getURLs()
)java.lang.Object
或目标接口或类。如果父接口或类由它们加载(例如java.util.List
),请为父类加载器重复上述步骤。
总之,请准备好进行内存和CPU密集型处理。 :)
Eclipse,我认为是逐步索引层次结构。这就是为什么大多数情况下它能快速显示结果的原因。虽然我不确定,但如果Eclipse提供一种通过插件实现在运行时访问其类型层次结构列表的方法,那么这可能值得探索。