【问题标题】:How to get annotation value from AnnotationDescription.Loadable in Bytebuddy如何从 Bytebuddy 中的 AnnotationDescription.Loadable 获取注释值
【发布时间】:2017-04-05 04:12:02
【问题描述】:

我想从一个特定的注解中获取注解值,例如@Callcount,它有一个名为key的字段。

 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?
        }
    }

我不知道如何构建方法callCountAnno.getValue()的参数,我该怎么办?

【问题讨论】:

  • 没有这方面的经验,所以我不喜欢马上做出回答。我刚刚浏览了 Byte Buddy 的 javadocs,看起来参数类型需要是 MethodDescription.InDefinedShape。所以试试getValue(method)

标签: java byte-buddy


【解决方案1】:

最简单的解决方案是加载允许您以类型安全的方式访问值的注释。您可以通过loadloadSilent 方法来执行此操作。或者,您需要提供要解决的属性。您可以通过:MethodDescription.ForLoadedMethod( ... ) 提供加载的方法参考。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-02-12
    • 2017-12-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-20
    • 1970-01-01
    相关资源
    最近更新 更多