我有以下代码:
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 的类?
提前致谢!