如何在Java中列出特定类的所有子类或特定接口的所有实现者?使用Eclipse,我可以做到这一点,但我想知道如何以编程方式执行此操作?如果你有任何建议,请一定要提出来。
发布于 2020-01-14 22:11:46
看看reflection,这是它的基本用法:
Reflections reflections = new Reflections("com.package");    
Set<Class<? extends InterfaceExample>> classes = reflections.getSubTypesOf(InterfaceExample.class);发布于 2020-01-14 22:28:38
据我所知,这至少需要以下步骤:
URLClassLoader及其子类型,这是从列表中的每个文件夹或JAR) (1)知道其中的类并加载每个类(类加载器可能有问题,但您可能在大多数情况下通过它)java.lang.Object或目标接口或类。如果父类加载器加载了父类接口或类(比如java.util.List),则对父类加载器重复上述步骤。
说完了,做好了,请准备好进行内存和CPU的繁重处理。:)
Eclipse,我认为逐步索引层次结构。这就是为什么,在大多数情况下,它显示结果的速度很快。我不确定,但如果Eclipse提供了一种在运行时(通过插件实现)访问其类型层次结构列表的方法,那么研究一下Eclipse可能是值得的。
https://stackoverflow.com/questions/59735326
复制相似问题