独自のカスタムアノテーションを定義しました
@Target(value={ElementType.METHOD, ElementType.FIELD})
@Retention(RetentionPolicy.RUNTIME)
public @interface MyCustomAnnotation {
Class<?> myType();
}
どのようにして、属性をオプションにすることができますか
次のことができます デフォルト値を提供 属性:
@Target(value={ElementType.METHOD, ElementType.FIELD})
@Retention(RetentionPolicy.RUNTIME)
public @interface MyCustomAnnotation {
Class<?> myType() default Object.class;
}
それを見つけた。オプションにすることはできませんが、デフォルトは次のように宣言できます。
@Target(value={ElementType.METHOD, ElementType.FIELD})
@Retention(RetentionPolicy.RUNTIME)
public @interface MyCustomAnnotation {
Class<?> myType() default String.class;
}
デフォルトが「空の」値として意味をなさない場合、それは問題です。
オプション属性の場合、その属性のデフォルト値を指定する必要があります。「default」キーワードを使用してデフォルト値を指定できます。
注:1つの属性についてのみ、属性名をvalueとして使用できます。属性名をvalueとして使用する場合、@ MyCustomAnnotation(myType = true)の代わりにこの@MyCustomAnnotation(true)のような値を直接渡すことができます。