注意点:obj必须是class对象,不能是接口对象。而且这只是获取该对象的第一个泛型。
/**
* 获取泛型类型
*
* @param obj
* @return
*/
public static Type getParameterizedTypeClass(Object obj) {
if (obj == null) {
return null;
}
ParameterizedType pt = (ParameterizedType) obj.getClass().getGenericSuperclass();
Type[] atr = pt.getActualTypeArguments();
try {
if (atr != null && atr.length > 0) {
return atr[0];
}
} catch (Exception e) {
Log.e(TAG,"getParameterizedTypeClass error");
}
return null;
}