我想用 Java Annotation 验证我的论点。我不知道如何使用为列表编写自己的注释。
这里有一个简单的例子:
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 的名称。
更新:
我尝试用另一种方式描述我的问题:
如果我的列表(“myElements”)中类型为“myObject”的两个元素具有相同的名称,则我的列表无效!
我怎么能用注释来实现这一点?