在 jdk 库中找到给定 class 的子 classes

find subclasses of a given class in jdk lib

我确实搜索了找到给定 class 的所有子 class 的解决方案,我看到了 this thread

据我所知,有一些工具可以做到这一点,例如 Reflections,在 Spring 框架中使用 ClassPathScanningCandidateComponentProvider,或 extcos。 但是在尝试了所有方法之后,似乎 none 对 jdk 中给定的 class(列表、地图、数字、...)有效。

我查看了他们的源代码,看看他们是如何工作的,我认为原因是因为他们需要获取我们在其中寻找 subclasses 作为资源的包,以及函数 classloader.getResource(String name),总是returns jdk.

中的包名称为 null 那么,为什么 jdk 中的包名称 classloader.getResource(String name) returns 为空?有没有人知道获得适用于 jdk 的 subclasses 的解决方案?

您为什么不尝试 link 中的一种解决方案?

在下面找到一个使用 https://github.com/ronmamo/reflections.git 的简单示例。

test 类 中查看之后,这个示例很简单。

Reflections reflections = new Reflections(new ConfigurationBuilder()
        .setUrls(Arrays.asList(ClasspathHelper.forClass(List.class))));

Set<Class<? extends List>> subTypes = reflections.getSubTypesOf(List.class);
for (Class c : subTypes) {
    System.out.println("subType: " + c.getCanonicalName());
}