考虑使用代理类Method
上的MyClass
myMethod。它的名称更改类似于CGLIB$myMethod$
,并且原始方法的注释不可用。
我需要找到带注释myMethod
的方法@MyAnnotation
:
Method method = ...
method.getName().contains("$myMethod$")) && method.findAnnotation<MyAnnotation>() != null
条件的第一部分即使有点hacky也在工作,但是找不到注释。有没有办法从代理的方法访问原始方法?
答案 0 :(得分:1)
您是否考虑过在MyClass
上创建一个包装器/装饰器,而后者将成为一个代理,而MyClass
实例将是一个常规(非代理)类?
UPD:您也可以尝试AopProxyUtils.ultimateTargetClass(...)
或AnnotationUtils.findAnnotation(...)
方法