<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      自定義注解校驗枚舉入參

      import org.apache.commons.lang.StringUtils;
      
      import javax.validation.Constraint;
      import javax.validation.ConstraintValidator;
      import javax.validation.ConstraintValidatorContext;
      import javax.validation.Payload;
      import java.lang.annotation.Annotation;
      import java.lang.annotation.Documented;
      import java.lang.annotation.ElementType;
      import java.lang.annotation.Retention;
      import java.lang.annotation.RetentionPolicy;
      import java.lang.annotation.Target;
      import java.util.ArrayList;
      import java.util.Arrays;
      import java.util.List;
      import java.util.Objects;
      
      @Documented
      @Retention(RetentionPolicy.RUNTIME)
      @Target({ElementType.FIELD, ElementType.METHOD})
      @Constraint(validatedBy = EnumValid.EnumValidatorHandle.class)
      public @interface EnumValid {
      
          String[] enums();
      
          Class[] sourceClass() default {};
      
          boolean isNull() default false;
      
          String message() default "入參值不在正確枚舉中";
      
          Class<?>[] groups() default {};
      
          Class<? extends Payload>[] payload() default {};
      
          class EnumValidatorHandle implements ConstraintValidator<EnumValid, Object>, Annotation {
              private List<String> enums = new ArrayList<String>();
              private boolean isNull = false;
              @Override
              public Class<? extends Annotation> annotationType() {
                  return null;
              }
      
              @Override
              public void initialize(EnumValid constraintAnnotation) {
                  this.isNull = constraintAnnotation.isNull();
                  String[] enums = constraintAnnotation.enums();
                  if (enums.length == 0) {
                      Class<? extends IEnumSource>[] classes = constraintAnnotation.sourceClass();
                      if (classes.length>0){
                          IEnumSource explicitInterface = SpringContextUtil.getBean(classes[0]);
                          this.enums = explicitInterface.source();
                      }
                  } else {
                      this.enums = Arrays.asList(enums);
                  }
              }
      
              @Override
              public boolean isValid(Object value, ConstraintValidatorContext context) {
                  if (value instanceof String) {
                      return (isNull && StringUtils.isBlank((String) value))
                              || (StringUtils.isNotBlank((String) value) && enums.contains(value));
                  } else {
                      return (isNull && Objects.isNull(value))
                              || (Objects.nonNull(value) && enums.contains(value.toString()));
                  }
              }
          }
          /**
           * 動態(tài)枚舉實現該接口
           */
          public static interface IEnumSource {
              List<String> source();
          }
      }

       

      posted @ 2022-02-17 10:26  浪天涯&*  閱讀(170)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 久久精品国产免费观看频道| 欧美成人精品高清在线播放| 亚洲欧洲一区二区免费| 午夜精品区| 国产精品久久久午夜夜伦鲁鲁| 欲香欲色天天天综合和网| 国产精品成人综合色在线| 99久久激情国产精品| 亚洲精品久荜中文字幕| 亚洲精品熟女一区二区| 女高中生自慰污污网站| 亚洲aⅴ男人的天堂在线观看| 精品熟女日韩中文十区| 国产精品美女一区二三区| 亚洲欧洲日产国产 最新| 精品国产一区二区三区国产区| 亚洲熟女综合色一区二区三区| 欧美大香线蕉线伊人久久| 亚洲中文字幕av天堂| 91精品国产色综合久久不| 在线观看成人永久免费网站| 偷看少妇自慰xxxx| 美乳丰满人妻无码视频| 香港日本三级亚洲三级| 成人网站免费观看永久视频下载 | 国产精品亚洲二区在线播放| 精品中文人妻在线不卡| 免费无码又爽又刺激高潮虎虎视频 | 国产精品黄色精品黄色大片| 亚洲av无码精品蜜桃| 久久99精品久久久久久9| 粉嫩国产av一区二区三区| 久久66热人妻偷产精品| 亚洲精品精华液一区二区| 日韩A人毛片精品无人区乱码| 日本高清在线观看WWW色| 久久夜色精品久久噜噜亚| 最新国产精品拍自在线播放| 国产精品v欧美精品∨日韩| 国产精品中文字幕免费| 国产精品va在线观看h|