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
;
}
}
?
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061
微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元

