2017-04-05 13 views
0

keyという名前のフィールドを持つ@Callcountなどの特定の注釈を、注釈値フォームから取得します。BytebuddyのAnnotationDescription.Loadableから注釈値を取得する方法

MethodList<MethodDescription.InDefinedShape> methods = typeDefinition.getDeclaredMethods(); 
    for (MethodDescription.InDefinedShape method : methods) { 
     AnnotationDescription.Loadable<CalledCount> callCountAnno; 
     if ((callCountAnno = method.getDeclaredAnnotations().ofType(CalledCount.class)) != null) { 
      callCountAnno.getValue(?);//how can i do here? 
     } 
    } 

私がやるshoud何方法callCountAnno.getValue()のパラメータを構築する方法がわかりませんか?

+0

このような経験がないので、バットからすぐに答えを出すのが快適ではありません。私はちょうどByte Buddyのためにjavadocsをスキミングし、パラメータ型が 'MethodDescription.InDefinedShape'である必要があるように見えます。だから 'getValue(method)'を試してみてください。 – kunruh

答えて

0

最も簡単な解決策は、アノテーションをロードして、型に安全な方法で値にアクセスできるようにすることです。 loadまたはloadSilentの方法でこれを行うことができます。または、解決したいプロパティを指定する必要があります。ロードされたメソッド参照は、MethodDescription.ForLoadedMethod(...)経由で提供できます。

関連する問題