spring Aop,关于获取方法参数的泛型类型的代码
方便起见,获取方法参数的时候只获取了第一个参数,获取所有参数getGenericParameterTypes()可使用Type[]接收和遍历。
// joinPoint
@Before("point()")
public void before(JoinPoint joinPoint) {
// 获取目标方法标志(切点方法)
MethodSignature signature = (MethodSignature) joinPoint.getSignature();
// 获取方法的参数,是数组,这里获取第一个参数
Type type = signature.getMethod().getGenericParameterTypes()[0];
// 类型转换
ParameterizedType parameterizedType = (ParameterizedType) type;
// 获取到泛型类型,是数组
Type[] actualTypeArguments = parameterizedType.getActualTypeArguments();
// do something
}