我搜索了如何查找给定类的所有子类的解决方案,并看到了这个帖子。
据我所知,有一些工具可以完成此任务,例如Reflections,在Spring框架中使用
我查看了它们的源代码,了解了它们的工作原理,我认为原因是因为它们需要将我们寻找子类的包作为资源获取,并且函数
那么,为什么
据我所知,有一些工具可以完成此任务,例如Reflections,在Spring框架中使用
ClassPathScanningCandidateComponentProvider
或extcos。但是在尝试它们之后,似乎没有一个适用于jdk中的给定类(List、Map、Number等)。我查看了它们的源代码,了解了它们的工作原理,我认为原因是因为它们需要将我们寻找子类的包作为资源获取,并且函数
classloader.getResource(String name)
对于jdk中的包名始终返回null。那么,为什么
classloader.getResource(String name)
对于jdk中的包名返回null?有没有人知道一个适用于jdk的获取子类的解决方案?
System.out.println(getClass().getClassLoader().getResource("java/lang/String.class"));
,你将会得到一个URL。 - Cfx