@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
@Constraint(validatedBy = EmailValidator.class)
public @interface Email {
String message() default "Invalid email";
Class<?>[] groups() default {};
Class<? extends Payload>[] payload() default {};
}
public class EmailValidator implements ConstraintValidator<Email, String> {
@Override
public void initialize(Email constraintAnnotation) {
}
@Override
public boolean isValid(String value, ConstraintValidatorContext context) {
if (value == null) {
}
return value.matches("^[\\w.-]+@[\\w.-]+\\.[a-zA-Z]{2,}$");
}
}
public class User {
@Email
private String email;
}
public class Main {
public static void main(String[] args) {
User user = new User();
ValidatorFactory factory = Validation.buildDefaultValidatorFactory();
Validator validator = factory.getValidator();
Set<ConstraintViolation<User>> violations = validator.validate(user);
if (violations.isEmpty()) {
} else {
for (ConstraintViolation<User> violation : violations) {
System.out.println(violation.getMessage());
}
}
}
}