【发布时间】:2012-10-06 17:07:15
【问题描述】:
我正在尝试使用Reflections 库来获取特定类的所有子类。我需要将搜索过滤到仅特定类路径 url 中的子类。 这是我正在使用的代码:
ConfigurationBuilder config = new ConfigurationBuilder();
config.addUrls(<my_url>);
Reflections reflections = new Reflections(config);
Set<Class<? extends A>> set = reflections.getSubTypesOf(A.class)
我的问题如下:假设 B 类扩展 A,C 类扩展 B。所以我们有:
A <|-- B <|-- C
A 和 B 位于与 C 不同的类路径 URL 中。给反射的 url 是 C 的 URL。然后我希望 C 在返回的集合中,并且 B 不应该存在,因为它在另一个类路径 url 中。
但是,返回的集合是空的。 C 不在反射返回的类集中,尽管它是 A 的传递后代。 如果我将 B 移动到 C 的相同类路径 URL,则返回 B 和 C。 然后我猜问题是如果层次结构中间的任何类不在过滤的url中,默认情况下反射不会回答(传递)子类。
我的问题是:我如何指示反射来回答特定类的(传递)子类,即使层次结构中间的某些类不在过滤的 url 中(但子类本身在过滤的 url 中) ?.
【问题讨论】:
标签: java reflection classpath reflections