我正在寻找一种方法来获取扩展某个类并推断某些泛型的所有类。我知道使用Reflectionsi可以获取扩展一个类的所有类
final Reflections reflections = new Reflections("path.to.package");
Set<Class<? extends ClassBase>> classes = reflections.getSubTypesOf(ClassBase.class);
但是我不确定如何只使用某些泛型。这是我想要实现的示例
假设我有 ClassBase<T>
public class ClassBase<T> {}
然后我有了ClassA ClassB ClassC,他们都在延伸ClassBase
public class ClassA extends ClassBase<Long> {}
public class ClassB extends ClassBase<Long> {}
public class ClassC extends ClassBase<Integer> {}
我怎么只得到ClassA和ClassB?我什至可以接受所有扩展的类,ClassBase然后过滤掉我不需要的那些类,只要我最终得到的集合中只包含那些扩展ClassBase并推断<Long>为泛型类型的类即可。
或者更好的是,我实际上想要的Set<Class<ClassBase<Long>>>不仅仅是一个Set<Class<ClassBase>>只包含那些推断Long为通用的
临摹微笑
阿波罗的战车
相关分类