将变量作为注释参数传递

Shu*_*ive 7 java annotations

我在我的 java 程序中使用了这样的注释。

@annotation("some string")
public void fun(){
...
} 
Run Code Online (Sandbox Code Playgroud)

有什么方法可以将变量而不是“某个字符串”传递给注释。

例如

String s="some string"
@annotation(s)
public void fun(){
...
}
Run Code Online (Sandbox Code Playgroud)

小智 2

不可能给注释一个变化的变量。传递给注释的值需要在编译时知道。

这会起作用:

private final String param = "Param";

@annotation(param)
public void function() {

}
Run Code Online (Sandbox Code Playgroud)

然而,它必须是常量并且不能改变,例如由构造函数初始化。(这种情况下的值在运行时而不是编译时已知)