Desidero convalidare i miei argomenti con Java Annotation. Non so come usare scrivere una propria annotazione per le liste.Elenchi con annotazioni Java
Ecco un semplice esempio:
class test{
@myAnnotation
List<myObject> myElements =new List<>(); // validated List
}
class myObject{
String name;
}
mia annotazione di interfaccia:
@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;
}
}
In questo esempio il mio elenco è valido, se ogni elemento dalla mia lista ha un altro nome. Non so come ottengo il listobject nella mia classe Validator e il nome di myObject-elements.
UPDATE:
provo a descrivere la mia domanda in un altro modo:
la mia lista non è valido se due elementi di tipo "myObject" nella mia lista ("myElements") hanno lo stesso nome!
Come posso realizzare questo con Annotations?
C'è qualche motivo specifico per scegliere annotazioni su qualche elenco decorato? –
hai guardato http://stackoverflow.com/questions/7865209/how-to-create-a-constraintvalidator-for-list –