我有一个名为Metric
@Target({ElementType.FIELD, ElementType.METHOD})
public @interface Metric {
String name() default "";
}
我希望在使用@Metric
注释的某些方法时编织一些逻辑,例如:
public class MethodWithMetricDemo{
@Metric
public void targetMethod(){
// do some thing
}
}
但是如何匹配MethodWithMetricDemo
中的课程new AgentBuilder.Default().type(xxxxxxxxxxxxxxxx)
?
答案 0 :(得分:0)
您需要根据方法注释匹配您的类型。由于方法是虚拟继承的,因此您需要通过hasSuperType(declaresMethod(isAnnotatedWith(...)))
遍历整个类层次结构。这是可能的,但相当昂贵。如果您选择使用这样的匹配器,则应该将匹配限制为给定的命名空间。