import com.megvii.performance.config.NumValidator;
import javax.validation.Constraint;
import javax.validation.Payload;
import java.lang.annotation.*;
@Target({ElementType.FIELD, ElementType.PARAMETER})
@Documented
@Retention(RetentionPolicy.RUNTIME)
@Constraint(validatedBy = NumValidator.class)
public @interface ValidateNum {
String message() default "";
Class<?>[] groups() default {};
Class<? extends Payload>[] payload() default {};
}
import com.megvii.performance.common.annotation.ValidateNum;
import org.apache.commons.lang3.StringUtils;
import javax.validation.ConstraintValidator;
import javax.validation.ConstraintValidatorContext;
import java.util.regex.Pattern;
public class NumValidator implements ConstraintValidator<ValidateNum, String> {
@Override
public boolean isValid(String code, ConstraintValidatorContext constraintValidatorContext) {
if (StringUtils.isEmpty(code)){
return true;
}
return Pattern.matches("^(-?)\d+[.]?\d*$", code);
}
}