当不是层次结构中的所有类型都在过滤的类路径URL中时,使用Reflection来查找类的(传递)子类型

时间:2012-10-16 14:48:49

标签: java reflection classpath google-reflections

我正在尝试使用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在类路径URL中不同于C.并且给予反射的URL是C中的一个。然后我希望C在返回的集合中,并且B不应该存在,因为它在另一个classpath url。

但是,返回的集合为空。 C不在反射返回的类集中,尽管它是A的传递后代。 如果我将B移动到C的相同类路径URL,则返回B和C. 然后我想问题是,如果层次结构中间的任何类不在过滤的URL中,则默认情况下Reflection不会回答(传递)子类。

我的问题是:我如何指示反射来回答(传递)特定类的子类,即使层次结构中间的某些类不在过滤的URL中(但子类本身是在过滤的URL中) ?

0 个答案:

没有答案