@Target(value=METHOD) @Retention(value=RUNTIME) @Documented @Repeatable(value=CsvOverridesAttribute.List.class) public @interface CsvOverridesAttribute
annotation()
で上書き対象のアノテーションを指定します。name()
で上書き対象のアノテーションの属性名を指定します。index()
で指定します。
@Target({ElementType.FIELD, ElementType.ANNOTATION_TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Repeatable(CsvCustomComposition.List.class)
@CsvComposition // 合成のアノテーションであることを示すためのメタアノテーション
@CsvDefaultValue(value="0", cases=BuildCase.Read)
@CsvRequire
@CsvNumberRange(min="0", max="100,000,000", groups=NormalGroup.class)
@CsvNumberRange(min="0", max="100,000,000,000", groups=ManagerGroup.class) // 上書き対象のアノテーション
public @interface CsvCustomComposition {
// 2番目(インデックスが1)の@CsvNumberRangeの属性maxの上書き
@CsvOverridesAttribute(annotation=CsvNumberRange.class, name="max", index=1)
String managerSalaryMax() default "100,000,000,000,000";
// 繰り返しのアノテーションの格納用アノテーションの定義
@Target({ElementType.FIELD, ElementType.ANNOTATION_TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@interface List {
CsvCustomComposition[] value();
}
}
修飾子とタイプ | 必須要素と説明 |
---|---|
Class<? extends Annotation> |
annotation
上書き対象のアノテーションのクラスタイプを指定します。
|
public abstract Class<? extends Annotation> annotation
public abstract String name
省略した場合、付与した属性名が採用されます。
Copyright © 2022 mygreen. All rights reserved.