3

Is it possible to set properties of annotation programmatically. So if I have :

@interface Author(
    String name();
    Date date ();
)

I want to be able to set the name property inside the code as if it is a regular class. Is this possible?

4

1 回答 1

2
  • 您不能Date在注释中使用
  • 要在运行时访问它,您需要添加@Retention(RetentionPolicy.RUNTIME)保留策略
  • 注释的声明用于{}注释定义,而不是()
  • 不,您不能在运行时使用普通 Java 功能修改注释
  • 您可以使用字节码操纵器来执行此操作,例如Javassist。但这并不是微不足道的。

为什么要在运行时执行此操作?可能还有其他更好的解决方案来解决您的问题。

于 2012-12-05T15:19:07.380 回答