版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/xiaoleizhanghahaha/article/details/86423351
import javax.validation.Constraint;
import javax.validation.Payload;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
@Target({ElementType.FIELD, ElementType.PARAMETER})
@Retention(RetentionPolicy.RUNTIME)
@Constraint(validatedBy = StatusEnumConstraintValidator.class)
public @interface StatusEnumConstraint {
String message() default "status must be in {10,11,12,20,22,21}";
Class<?>[] groups() default {};
Class<? extends Payload>[] payload() default {};
}
实现
import javax.validation.ConstraintValidator;
import javax.validation.ConstraintValidatorContext;
public class StatusEnumConstraintValidator implements ConstraintValidator<StatusEnumConstraint, String> {
@Override
public void initialize(StatusEnumConstraint constraintAnnotation) {
}
@Override
public boolean isValid(String status, ConstraintValidatorContext constraintValidatorContext) {
return StatusEnum.isInEnum(status);
}
}
package com.pingan.ifab.bank.common.constant; public enum StatusEnum { CREATE("10"), APPROVED("11"), UNAPPROVE("12"), private String code; StatusEnum(String code) { this.code = code; } public static boolean isInEnum(String code) { for (StatusEnum statusEnum : StatusEnum.values()) { if (statusEnum.code.equals(code)) { return true; } } return false; } public String code() { return code; } }