【发布时间】:2019-02-18 11:14:16
【问题描述】:
Class MyClass 有一个带注释的数字字段编号。
class MyClass {
@Min(10)
Number number;
}
我想在运行时使用反射并在字段中添加一个新注释@Max(20)。
怎么做?
我读过一篇文章https://www.baeldung.com/java-reflection-change-annotation-params,我找不到annotationData。没有 public 方法查看或附加或放置注释。
我使用 open-jdk-10。
我在这里找到的。我想结束我的问题。 Adding Java Annotations at Runtime
【问题讨论】:
-
"I found here" 是的,那 not 如何回答您的问题?
-
可能有更简单的方法来实现您想要的,具体取决于在运行时如何使用注释。例如,一些框架(如 Hibernate)维护内部配置并允许您使用 xml 或注释来配置您的类。在这种情况下,更改注释值或在运行时添加注释可能无论如何都不起作用(因为它可能发生得太晚),因此您需要对可能存储在其他地方的结果配置进行更改......
-
在其他情况下,例如 CDI,有一些工具可以在加载时添加信息(CDI 会为此使用扩展名),这样您就可以添加“注释”(那些对反射,但通过其内部配置存储对 CDI 可见)。
标签: java reflection