public class Parent {}
public class A extends Parent {}
public class B {}
public class Test {
private List<A> aList;
private List<B> bList;
}
我在玩反射和泛型并创建这些类只是为了好玩。
现在我想打印Test类中类型为 的变量名称List<T extends Parent>。所以我想打印只是"aList"因为Aextends Parent,而 whileB没有。
到目前为止,我已经能够获得List变量。我查看了各种反射方法,但无法提取 List 的类型<...>并查看其超类是否Parent存在。这是我的代码,目前同时打印"aList"和"bList":-
public static void main(String[] args) {
Arrays.stream(Test.class.getDeclaredFields())
.filter(field -> field.getType().equals(List.class)) // && fieldActualTypeExtendsA
.forEach(field -> System.out.println(field.getName()));
}
我应该在过滤器中添加什么?
哔哔one
相关分类