Javaアノテーションを使用して引数を検証したいと思います。リスト用に独自のアノテーションを作成する方法がわかりません。
ここに簡単な例があります:
class test{
@myAnnotation
List<myObject> myElements =new List<>(); // validated List
}
class myObject{
String name;
}
私の注釈インターフェース:
@Target({ElementType.TYPE,ElementType.METHOD,ElementType.FIELD})
@Retention(RetentionPolicy.RUNTIME)
@Constraint(validatedBy=myAnnotation_Validator.class)
@Documented
public @interface myAnnotation {
String message() default "List is not valid";
Class <?>[] groups() default {};
Class <?extends Payload>[] payload() default{};
String[] namen();
}
public class myAnnotation_Validator implements ConstraintValidator<myAnnotation, Collection> {
@Override
public void initialize(Kredite_List_Check a) {
// What to do here???
}
@Override
public boolean isValid(Collection t, ConstraintValidatorContext cvc) {
// What to do here???
// How could i get the names from my List "myElements" ?
return false;
}
}
この例では、リストの各要素に別の名前がある場合、リストは有効です。ValidatorクラスのlistobjectとmyObject-elementsの名前を取得する方法がわかりません。
アップデート:
私は自分の質問を別の方法で説明しようとしています。
リスト内のタイプ"myObject"の2つの要素( "myElements")が同じ名前の場合、私のリストは無効です。
アノテーションでこれをどのように実現できますか?