设定范围和步长的递增数验证器Validator

系统 1595 0

1、接口注释

      
        @Target({METHOD, FIELD, ANNOTATION_TYPE, CONSTRUCTOR, PARAMETER})

@Retention(RUNTIME)

@Documented

@Constraint(validatedBy 
      
      = {IncrementalValidator.
      
        class
      
      
        })


      
      
        public
      
       @
      
        interface
      
      
         IncrementalInteger {



    String message() 
      
      
        default
      
       "{common.incrementalInteger.Pattern}"
      
        ;



    Class
      
      <?>[] groups() 
      
        default
      
      
         {};



    Class
      
      <? 
      
        extends
      
       Payload>[] payload() 
      
        default
      
      
         {};



    
      
      
        /**
      
      
        

     * 
      
      
        @return
      
      
         value the element must be larger or equal to

     
      
      
        */
      
      
        int
      
      
         min();

    

    
      
      
        /**
      
      
        

     * 
      
      
        @return
      
      
         value the element must be smaller or equal to 

     
      
      
        */
      
      
        int
      
      
         max();



    
      
      
        /**
      
      
        

     * 
      
      
        @return
      
      
         value must be incremental

     
      
      
        */
      
      
        int
      
      
         increment();



    
      
      
        /**
      
      
        

     * Defines several {
      
      
        @link
      
      
         IncrementalInteger} annotations on the same

     * element.

     *

     * 
      
      
        @see
      
      
         IncrementalInteger

     
      
      
        */
      
      
        

    @Target({METHOD, FIELD, ANNOTATION_TYPE, CONSTRUCTOR, PARAMETER})

    @Retention(RUNTIME)

    @Documented

    @
      
      
        interface
      
      
         List {



        IncrementalInteger[] value();

    }

}
      
    

2、Validator类

      
        public
      
      
        class
      
       IncrementalValidator 
      
        implements
      
       ConstraintValidator<IncrementalInteger, Integer>
      
         {



    
      
      
        private
      
      
         IncrementalInteger constraintAnnotation;



    @Override

    
      
      
        public
      
      
        void
      
      
         initialize(IncrementalInteger constraintAnnotation) {

        
      
      
        this
      
      .constraintAnnotation =
      
         constraintAnnotation;

    }



    @Override

    
      
      
        public
      
      
        boolean
      
      
         isValid(Integer value, ConstraintValidatorContext context) {

        
      
      
        int
      
       min =
      
         constraintAnnotation.min();

        
      
      
        int
      
       increment =
      
         constraintAnnotation.increment();

        
      
      
        int
      
       max =
      
         constraintAnnotation.max();

        
      
      
        if
      
       (value <
      
         min) {

            
      
      
        return
      
      
        false
      
      
        ;

        }



        
      
      
        if
      
       (value >
      
         max) {

            
      
      
        return
      
      
        false
      
      
        ;

        }



        
      
      
        if
      
       ((value - min) % increment != 0
      
        ) {

            
      
      
        return
      
      
        false
      
      
        ;

        }



        
      
      
        return
      
      
        true
      
      
        ;

    }

}
      
    

 

设定范围和步长的递增数验证器Validator


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论