2

私は検証を行うためにOvalを使用しているので、次のようなコードがあります。

   @NotNull(errorCode = "NumberInvalid")
   @NotNegative(errorCode = "NumberInvalid")
   @Range(errorCode = "NumberInvalid", min=1, max=10)
   protected Integer dollarAmount;

必要に応じて範囲を動的に更新できるようにしたいです。たとえば、毎月かそこらで変更される構成ファイルがある場合は、それらの変更を検証に反映できるようにしたいです。

Ovalのすべての注釈をサブクラス化する必要がないように、リフレクションを使用してこれを行う方法はありますか?

4

3 に答える 3

0

注釈は静的コードでよりきれいに見えますが:)しかし...方法があります..リフレクションを使用してみましたか?アプローチを投稿できますか。あなたはこれを見ることができます

于 2013-03-12T16:12:34.810 に答える
0

私の知る限り、これは不可能です。アノテーションの保持がRUNTIME(検証が機能するために必要)に設定されているとすると、効果的に持つのはアノテーションインターフェイスを実装するプロキシクラスであり、リフレクションによって値を修正することはできません。

于 2013-03-12T16:14:10.173 に答える
0

リフレクションの目的は、クラスメンバー(設定フィールドを含む)にアクセスすることですが、新しいメンバーの追加や既存の宣言の変更については説明していません。必要なのは、バイトコードの編集コードのリファクタリングに似ています。

于 2013-03-12T16:23:32.603 に答える