我的项目包括反射,我目前正在处理泛型类型。我已经设法从 List(java.util.List) 中获取泛型类型:
if(originalField.getGenericType() instanceof ParameterizedType){
ParameterizedType pt = (ParameterizedType) originalField.getGenericType();
Class<?> subClass = (Class<?>) pt.getActualTypeArguments()[0];
}
我也有一个Collection<String>
,事实证明不能将 Collection强制转换为 ParameterizedType。
有人知道如何从集合中获取字符串(或任何类型)?
我一直在阅读有关 java 擦除的内容,所以我知道这一点,但是在将泛型从列表中删除后,我想也许有人知道另一个“技巧”。
谢谢。
编辑:我正在迭代类的所有字段:
for (Field originalField : someClass.getDeclaredFields())
然后当我面对一些List<String>
领域时,使用上面的代码我得到了String
子类变量。