1

Java アノテーションに基づいて、アプリケーションの周りに検証メカニズムを構築しました。Java Bean の検証に似ていますが、唯一の例外は、私の方が簡単であることです。値のみがあり、値の型は ですFloat

@Target({ FIELD })
@Retention(RUNTIME)
@Documented
public @interface Min {    
   float value() default 0f; 
}

ここで、値もサポートするようにこのメカニズムを拡張する必要がありIntegerます。アノテーションのオーバーライドを提供することは可能ですか? 何かのようなもの:

@Target({ FIELD })
@Retention(RUNTIME)
@Documented
public @interface Min {    
   int value() default 0; 
}

それとも、2 つのプロパティのうちの 1 つだけが存在する可能性はありますか? 何かのようなもの:

@Target({ FIELD })
@Retention(RUNTIME)
@Documented
public @interface Min {    
   float value() default 0f; 
   int intValue();
}

他のメカニズムは歓迎されます。

ありがとうございました!

4

1 に答える 1

1

注釈型は、スーパークラスまたはスーパーインターフェースを宣言できません。詳細については、 JLS 9.6を参照してください。

以下にいくつかのオプションを示します。

  • 2 つの値をサポートするように注釈を変更してください
  • 別の名前と値で 2 番目の注釈を作成し、注釈プロセッサに両方の注釈を処理させます。
于 2013-07-11T09:40:10.940 に答える