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

Java 有没有办法处理这个属性值必须为常量的错误?,java,Java,我正在尝试调用此方法: public Response getWithPathParam(@ApiParam( value = "Service group to check", allowableValues = ApiConstants.components, required = true ) 但是想要allowableValues属性将

我正在尝试调用此方法:

public Response getWithPathParam(@ApiParam( 
        value = "Service group to check",
        allowableValues = ApiConstants.components,                                                   
        required = true )
但是想要allowableValues属性将得到一个可以变化的值

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

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

到目前为止,我的尝试导致了以下错误:

“属性值必须为常量”


您能帮个忙吗?

通常,编译器错误除了修复外,无法以任何方式处理。 只有运行时错误才能以某种方式处理

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


这意味着您无法执行任何与您尝试执行的操作非常接近的操作。

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

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

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

您能提供一些代码吗?如果您不提供一个…您是否试图为最终字段赋值,这将很难帮助您。您能提供您的代码吗。“此方法”?方法在哪里?属性
allowableValues
是什么的属性?你指的是“属性”这个词的上下文是什么?简而言之,您的问题非常非常不清楚。他可能是指“注释属性的值必须是常量表达式”错误。但如果该方法是第三方的,则无法将其注入?只能进行方面编程,但如果您这样做,则表示您的设计错误