Java反射:类注释在运行时

时间:2015-10-05 16:37:13

标签: java reflection

我试图在运行时动态地向类添加注释,如下所示:Modify a class definition's annotation string parameter at runtime

然而,'注释'字段返回null。实际上,根据调试器,除了" declaredFields"之外,类中的所有内容都返回null。和"名称"。我使用的是Java 7。

这是我的代码:

Field field = Class.class.getDeclaredField("annotations");
field.setAccessible(true);
Map<Class<? extends Annotation>, Annotation> annotations = 
    (Map<Class<? extends Annotation>, Annotation>) 
        field.get(clazz);
annotations.put(JsonIdentityInfo.class, newAnnotation);

1 个答案:

答案 0 :(得分:3)

似乎类字段annotations已经延迟构建,您首先需要强制进行初始化:

JsonIdentityInfo.class.getAnnotations();

然后继续您的代码。