java注释中的常量

时间:2013-09-05 22:19:40

标签: java annotations

我有以下注释: @ javax.ws.rs.DefaultValue(“212”)长位

我想重用已经定义为注释参数的“final static”值。像这样:

final static final long PERMISSIONS = PERMISSION_A | PERMISSION_B; //这是212

但由于注释需要“常量表达式”,因此无法进行:

@DefaultValue(String.valueof(PERMISSIONS))长位

有没有办法实现这个目标?

1 个答案:

答案 0 :(得分:1)

String.valueOf(PERMISSIONS)

不被识别为编译时时间常量表达式,但这是:

"" + PERMISSIONS

所以使用:

@DefaultValue("" + PERMISSIONS)

显然,这不是一般案例解决方案。恰好是从常量数字类型构造String的编译时常量方法。比如说你有一个String常量表示一个整数,并希望将它转换为int以传递给注释,那么你就不走运了。