我试图在运行时动态地向类添加注释,如下所示: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);
答案 0 :(得分:3)
似乎类字段annotations
已经延迟构建,您首先需要强制进行初始化:
JsonIdentityInfo.class.getAnnotations();
然后继续您的代码。