如何获取 java 的泛型中的对象类型
展开全部
/**
* 获取field的类型,如果是复合对象,获取的是泛型的类型
*
* @param field
* @return
*/
private static Class getFieldClass(Field field) {
Class fieldClazz = field.getType();
if (fieldClazz.isAssignableFrom(List.class)) {
Type fc = field.getGenericType(); // 关键的地方,如果是List类型,得到其Generic的类型
if (fc instanceof ParameterizedType) // 如果是泛型参数的类型
{
ParameterizedType pt = (ParameterizedType) fc;
fieldClazz = (Class) pt.getActualTypeArguments()[0]; //得到泛型里的class类型对象。
}
}
return fieldClazz;
}
正好这几天刚写了相关代码,供参考
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询