代码写法如下
private Class handlerIntfGenericType(Class clazz) {
Type[] genericInterfaces = clazz.getGenericInterfaces();
for (Type genericInterface : genericInterfaces) {
// 判断接口是否是 BaseDao 类型的
if (((ParameterizedTypeImpl) genericInterface).getRawType().isAssignableFrom(BaseDao.class)) {
ParameterizedType parameterizedType = (ParameterizedType) genericInterface;
// 获得当前类的实际泛型参数类型
Type[] types = parameterizedType.getActualTypeArguments();
return (Class<?>) types[0];
}
}
return null;
}