将变量作为注解参数传递

8
我在我的java程序中使用类似于这样的注解。
@annotation("some string")
public void fun(){
...
} 

有没有办法在注释中传递变量而不是“某个字符串”。

例如:

String s="some string"
@annotation(s)
public void fun(){
...
}

什么是上下文?信息必须来自哪里?您不能将类或局部变量用作注释的参数。 - ernest_k
也许这个可以回答你的问题? - Cortex0101
简而言之:不,这是不可能的。注解参数值应该是编译时常量。 - Sergii Bishyr
你试过这个吗?有错误吗? - Mark
请将动态参数传递给注释。 - user3122166
这个回答解决了你的问题吗?如何向注解传递动态参数? - EricSchaefer
1个回答

2

无法给注解赋予可变变量。传递到注解中的值需要在编译时已知。

以下代码是有效的:

private final String param = "Param";

@annotation(param)
public void function() {

}

然而,它必须是恒定的,不能被改变,例如由构造函数初始化。(在这种情况下,该值将在运行时而非编译时被确定)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接