有没有办法处理这个属性值必须是常量错误?

时间:2017-06-07 12:29:54

标签: java

我正在尝试调用此方法:

public Response getWithPathParam(@ApiParam( 
        value = "Service group to check",
        allowableValues = ApiConstants.components,                                                   
        required = true )

但希望allowableValues属性获得一个可以变化的值。

我的意思是我假设allowableValues是一个字符串。

我想知道是否有一种方法可以从配置中读取字符串并将其传递给属性。

到目前为止我的尝试只是导致错误:

“属性值必须保持不变”

你可以帮忙吗?

2 个答案:

答案 0 :(得分:1)

通常,除了修复编译器错误之外,不能以任何方式处理编译器错误。 只能处理运行时错误。

根据java语言规范,注释的参数必须是编译时常量

这意味着即使远程接近你想要做的事情,你也无法做任何事情。

答案 1 :(得分:0)

Java禁止接受除常量之外的任何其他注释参数,因此您需要将ApiConstants.components更改为固定值,例如:

  class ApiConstants{
     public static final String[] CONSTANTS = {"VAL_1","VAL_2"};
  }

如果您仍想继续使用动态配置,则需要在方法本身内处理它。