2017-06-07 6 views
-5

私は、このメソッドを呼び出すしようとしています:この属性値を処理する方法はありますか?定数エラーでなければなりませんか?

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

をしかしallowableValues属性が変化することができます値を取得することを望みます。

私はallowableValuesがStringであると仮定しています。

設定から文字列を読み込んで属性に渡す方法があるのだろうかと思います。

私の試みは、これまでただの誤りに導か:

はあなたが助けてくださいすることができ、「属性値は定数でなければなりませんか」?

+3

いくつかのコードを提供できますか? – Beri

+0

あなたは[sscce](http://sscce.org/)を提供しないとあなたを助けるのが難しいでしょう... –

+0

最終フィールドに値を割り当てようとしていますか?コードを入力してください。 –

答えて

1

一般に、コンパイルエラーは、それらを修正する以外の方法では処理できません。 何らかの形で処理できるランタイムエラーのみです。

Java言語仕様によると、アノテーションへのパラメータは、のコンパイル時定数でなければなりません。

これは、あなたがしようとしているものに遠く離れた場所でも何もできないことを意味します。

0

Javaは、定数以外の任意の他の注釈パラメータを受け入れることを防ぐので、たとえば、固定値であることをApiConstants.componentsを変更する必要があります。

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

あなたはまだ動的な構成に滞在したい場合は、メソッド自体の中でそれを処理する必要があります。

+0

しかし、メソッドがサードパーティーの場合 – roman

+0

注入する方法はありませんか? – roman

+0

アスペクトプログラミングだけですが、 、あなたのデザインが間違っていることを意味します – Beri

関連する問題