当前位置: 首页 > news >正文

企业软文seo兼职58

企业软文,seo兼职58,坪山公司网站建设,黄山地区建设行业网站在日常开发中经常会用到String类型的数据当作数值进行映射#xff0c;势必会做出数值范围的校验#xff0c;可以通过自定义注解的办法简化代码实现#xff0c;减少冗余代码。 Target({ElementType.FIELD}) Retention(RetentionPolicy.RUNTIME) Constraint(validatedBy St…在日常开发中经常会用到String类型的数据当作数值进行映射势必会做出数值范围的校验可以通过自定义注解的办法简化代码实现减少冗余代码。  Target({ElementType.FIELD}) Retention(RetentionPolicy.RUNTIME) Constraint(validatedBy StrRangeValidator.class) public interface StrRange {/*** 错误提示* return*/String message() default value is not in given range;/*** 最小值* return*/double min() default Double.MIN_VALUE;/*** 最大值* return*/double max() default Double.MAX_VALUE;/*** 是否包含边界* return*/boolean closeMin() default true;/*** 是否包含边界* return*/boolean closeMax() default true;/*** 是否可空* return*/boolean nullable() default true;Class?[] groups() default { };Class? extends Payload[] payload() default { }; } 这里的groupspayload是必须的。其他方法是根据需要设定的参数 1. 允许null值跳过校验 2. 边界值开区间、闭区间 3. 自定义errorMessage validatedBy 是核心的验证逻辑 public class StrRangeValidator implements ConstraintValidatorStrRange, String {private boolean nullable;private BigDecimal min;private BigDecimal max;private boolean closeMin;private boolean closeMax;Overridepublic void initialize(StrRange constraintAnnotation) {nullable constraintAnnotation.nullable();min new BigDecimal(String.valueOf(constraintAnnotation.min()));max new BigDecimal(String.valueOf(constraintAnnotation.max()));closeMin constraintAnnotation.closeMin();closeMax constraintAnnotation.closeMax();}Overridepublic boolean isValid(String s, ConstraintValidatorContext constraintValidatorContext) {if (s null nullable){return true;}try {BigDecimal val new BigDecimal(s);boolean checkMin closeMin ? min.compareTo(val) 0 : min.compareTo(val) 0;boolean checkMax closeMax ? val.compareTo(max) 0 : val.compareTo(max) 0;return checkMin checkMax;} catch (Exception ex) {return false;}} } String到枚举值的反向解析和验证也是比较常见的问题也可以通过自定义注解的方式简化此类解析判断。 再来一个枚举验证 Target({ElementType.FIELD}) Retention(RetentionPolicy.RUNTIME) Constraint(validatedBy ValidEnumValidator.class) public interface ValidEnum {/*** 错误提示* return*/String message() default invalid enum value;/*** 目标类型* return*/Class? target();/*** 是否可空* return*/boolean nullable() default true;Class?[] groups() default { };Class? extends Payload[] payload() default { }; } public class ValidEnumValidator implements ConstraintValidatorValidEnum, String {private Class? clazz;private boolean nullable;Overridepublic void initialize(ValidEnum constraintAnnotation) {nullable constraintAnnotation.nullable();clazz constraintAnnotation.target();}Overridepublic boolean isValid(String s, ConstraintValidatorContext constraintValidatorContext) {if (!clazz.isEnum()) {return false;}if (s null nullable) {return true;}try {Method method clazz.getDeclaredMethod(of, String.class);return method.invoke(null, s) ! null;} catch (Exception e) {return false;}} } 注意枚举需要保持类型一致String都存在这样的of方法 AllArgsConstructor Getter public enum EAccountAuthTypeEnum {OPEN_ACCOUNT(1, 开户),;private final String code;private final String msg;public static EAccountAuthTypeEnum of(String code) {return Arrays.stream(values()).filter(ele - ele.getCode().equals(code)).findFirst().orElse(null);} }
http://www.hkea.cn/news/14444341/

相关文章:

  • 重庆建工招采平台昆明网站seo技术厂家
  • 省企联网站建设要求网站设计实训心得体会
  • 个人简介网站html代码淄博网站制作定制技术
  • wordpress网站音乐播放器法律平台网站建设方案
  • 网站做生鲜线下推广建议响应式网站的组成
  • 网上自己建网站wordpress更换文章图片链接
  • 二手域名做网站不收录服务专业的网站开发设计
  • 网站推广建设网络科技公司一般是做什么的
  • 在什么网站做推广嘉兴哪家公司做网站比较好的
  • 教育网站开发需求说明书创建网站时间代码
  • 请输入您网站的icp备案信息美食网站开发与设计任务书
  • 网站开发主要学什么小程序开发费用多少
  • 衡阳市建设学校官方网站wordpress主题手机制作
  • 精通网站开发书籍wordpress横向导航
  • 建设银行网站开通查询密码wordpress 悬浮通知
  • 网站建设我要自学网网站建设类的职位
  • 安徽中颐建设投资有限公司网站WordPress不支持
  • 专业网网站建设公司网站建设应包含哪几个板块
  • 网站词库怎么做哪家公司网站建设口碑好
  • 网站建立定位企划linux系统中wordpress
  • 提供电子商务网站建设外包服务的企业学设计需要什么条件
  • 使用wordpress建立个人网站西安建设厅网站
  • 网站制作公司 云南企业所得税优惠政策2020
  • 万网备案初审过了后网站能访问吗wordpress免登录付费查看内容
  • 成都网站建设 平易云华夏思源培训机构官网
  • 免费建站自己的网址网站大图分辨率做多大
  • 网站扩容需要多少钱济南网站建设联 系小七
  • 最超值的郑州网站建设广州推广渠道
  • 网站组成部分把两个网站合并到一个网页
  • 申请备案 关网站网站建设的小说