我需要检查一个类的字段是否为List<String>
。我试着这样做与下面的代码:如何使用反射检查对象的通用类型?
for (Field formField : formClass.getDeclaredFields()) {
...
if (formField.getGenericType().equals((Class<List<String>>)(Class<?>)List.class)) {
...
}
}
这似乎是一个错误的代码,因为formField.getGenericType().equals((Class<List<String>>)(Class<?>)List.class)
回报false
甚至,它实际上是一个List<String>
领域。
另一种方法是先测试一个字段是否为List
与formField.getType().equals(List.class)
然后检查它是否与formField.getGenericType() instanceof ParameterizedType
一致并最后检查类型参数的类。
但我认为有一个更短的方式来执行此检查。在那儿?从示例