如何匹配带注释的类?

时间:2017-03-24 10:18:02

标签: byte-buddy

我有一个名为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)

1 个答案:

答案 0 :(得分:0)

您需要根据方法注释匹配您的类型。由于方法是虚拟继承的,因此您需要通过hasSuperType(declaresMethod(isAnnotatedWith(...)))遍历整个类层次结构。这是可能的,但相当昂贵。如果您选择使用这样的匹配器,则应该将匹配限制为给定的命名空间。