我需要检查一个类的字段是否是 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)
即使在实际上是 List<String>
的字段上也会返回 false
。另一种方法是先测试一个字段是否为
List
,使用 formField.getType().equals(List.class)
,然后检查它是否是泛型的,使用 formField.getGenericType() instanceof ParameterizedType
,最后检查类型参数的类。但我认为有一种更简短的方式来实现这个检查。有吗?