2017-03-24 3 views
0

私はMetric内部のアノテーションとクラスを一致させるにはどうすればよいですか?

@Target({ElementType.FIELD, ElementType.METHOD}) 
public @interface Metric { 
    String name() default ""; 
} 

という名前の注釈を持っている私は、とき@Metric注釈といくつかの方法のように、いくつかのロジックを織りたい:

public class MethodWithMetricDemo{ 

    @Metric 
    public void targetMethod(){ 
     // do some thing 
    } 
} 

しかし、どのようnew AgentBuilder.Default().type(xxxxxxxxxxxxxxxx)でクラスMethodWithMetricDemoを一致させるには?

答えて

0

メソッドアノテーションに基づいて型を一致させる必要があります。メソッドは事実上継承されるので、クラス階層全体をhasSuperType(declaresMethod(isAnnotatedWith(...)))でトラバースする必要があります。これは可能ですが高価です。そのようなマッチャーを使用することを選択した場合は、マッチングを特定のネームスペースに限定してください。

関連する問題