5

次のような注釈があります。

@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.FIELD, ElementType.METHOD, ElementType.TYPE})
public @interface MyAnnotation {
  String  name();

  Class<InstanceConverter> converter();

私がやろうとしているのは、名前を必須にし、コンバーターをオプションにすることです。デフォルトでは、注釈のすべての属性が必要なようです。コンバーターをオプションにするにはどうすればよいですか?

注釈に関する 2 つの記事を読みましたが、オプションの属性について言及しているものはないようです。

ありがとう。

4

1 に答える 1

9

defaultアノテーション @interface 定義のフィールド宣言ステートメントの右側に句を追加する必要があります。

@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.FIELD, ElementType.METHOD, ElementType.TYPE})
public @interface MyAnnotation {

  String  name(); // mandatory

  Class<InstanceConverter> converter() default InstanceConverter.class; // optional
}
于 2012-09-17T12:18:23.743 に答える