注意點: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;
}