如何在同一个注释中将变量的默认值设置为另一个

时间:2016-07-23 17:33:49

标签: java annotations

我正在寻找一种方法来将注释中变量的默认值设置为同一注释中的另一个变量,这是我想要做的:

public @interface Command {
    String commandName();
    String triggerName() default commandName();
    String description() default "";
}

通过这样做,我收到了Eclipse的错误,即:

The value for annotation attribute Command.triggerName must be a constant expression

所以我不完全确定理解它,也许它要求我将“commandName”更改为常量变量(使用final),但我只能将公共和抽象。

有没有办法做我正在解释的事情?

1 个答案:

答案 0 :(得分:0)

您不能这样做,因为指示的默认值必须是编译时常量。您可以做的最接近的是what Spring 4.3 does,在您的阅读器代码中实现逻辑(例如注释处理器或运行时反射)并对其进行记录。