С помощью Spring AOP я пишу аспект с советом вокруг, который перехватывает любой метод, аннотированный @MyAnnotation
. Предположим, что перехваченный метод был объявлен следующим образом:
@MyAnnotation
public String someMethod(ArrayList<Integer> arrList) {...}
В методе совета я хочу получить информацию о том, что первый параметр, то есть arrList
, имеет тип ArrayList
с параметром типа Integer
.
Я попытался выполнить этот вопрос, выполнив это
@Around("@annotation(MyAnnotation)")
public Object advice(ProceedingJoinPoint pjp) {
Method method = ((MethodSignature) pjp.getSignature()).getMethod();
Class<?>[] paramsClass = method.getParameterTypes();
logger.info(((ParameterizedType) paramsClass[0].getGenericSuperclass()).getActualTypeArguments()[0])
...
}
Но то, что было выведено из системы, это просто E
. Как мне сделать, чтобы он печатал java.lang.Integer
?