小编The*_*own的帖子

Java Reflections getSubTypeOf 不返回层次结构的所有子类

我有以下代码:

        Reflections reflections = new Reflections(packageName, new SubTypesScanner(false));

        Set<Class<? extends Action>> allClasses = reflections.getSubTypesOf(Action.class);

        for (Class<?> subTypeOfActionInPackageNameClass : allClasses) {
           System.out.println(subTypeOfActionInPackageNameClass.getName());
        }
Run Code Online (Sandbox Code Playgroud)

我希望这会打印扩展 Action 的类的所有类名,以及扩展这些类的所有类,因为它们也间接扩展了 Action。例如 C 扩展 B 扩展 A。如果我做反射.getSubTypesOf(A.class); 它只返回 B 类,但我希望它也返回 C 类。

我怀疑这与 SubTypesScanner 有关系,但调查后我没有发现任何东西可以让它返回 C 类。

现在的问题是:

a) 它应该表现得那样吗?
b) 如果 a 的答案是肯定的,有没有办法返回所有直接和间接扩展类 A 的类?

提前致谢!

java reflection

4
推荐指数
1
解决办法
1481
查看次数

标签 统计

java ×1

reflection ×1