自定义wordpress首页标题,seo如何网站正常更新,网站需要每个城市做推广吗,工程与建设Guava中Preconditions校验 场景引入Guava 参数校验 Preconditionspom 依赖引入常用的方法 场景引入
提出疑问#xff1f;为什么不直接使用 jsr330校验注解对实体类进行校验呢#xff1f;
答#xff1a;不同的场景#xff0c;如短信码验证登录#xff0c;账号密码登录此类… Guava中Preconditions校验 场景引入Guava 参数校验 Preconditionspom 依赖引入常用的方法 场景引入
提出疑问为什么不直接使用 jsr330校验注解对实体类进行校验呢
答不同的场景如短信码验证登录账号密码登录此类的实体对于字段是否必填并不是必须的。
Data
class UserLoginDTO {// NotBlank(message 手机号不能为空)private String phone;// NotBlank(message 验证码不能为空)private String code;// NotBlank(message 密码不能为空)private String password;
}应对这样的dto实体只能在业务中进行判空处理如下面的操作
if (StringUtils.isBlank(userLoginDTO.getPhone())) {// ...
}
if (StringUtils.isBlank(userLoginDTO.getCode())) {// ...
}
if (StringUtils.isBlank(userLoginDTO.getPassword())) {// ...
}如果输入参数少的时候还好如果很多就会变成大量的if(判空操作)很不优雅…
此时就可以使用 guava 的 Preconditions来完成上面的判空操作了如
Preconditions.checkArgument(StringUtils.isNotBlank(userLoginDTO.getPhone()), 手机号不能为空);
Preconditions.checkArgument(StringUtils.isNotBlank(userLoginDTO.getCode()), 验证码不能为空);
Preconditions.checkArgument(StringUtils.isNotBlank(userLoginDTO.getPassword()), 密码不能为空);Guava 参数校验 Preconditions
pom 依赖引入
dependencygroupIdcom.google.guava/groupIdartifactIdguava/artifactIdversion版本号/version
/dependency常用的方法
简单的列举Guava中Preconditions类的一些常用校验方法
方法名描述抛出异常checkArgument(boolean expression, String errorMessageTemplate, Object... errorMessageArgs)校验方法参数。如果expression为false则抛出IllegalArgumentExceptionIllegalArgumentExceptioncheckNotNull(T reference)校验reference不为null。如果为null则抛出NullPointerExceptionNullPointerExceptioncheckNotNull(T reference, String errorMessage)类似于checkNotNull(T reference)但允许提供一个错误消息NullPointerExceptioncheckState(boolean expression)校验程序状态。如果expression为false则抛出IllegalStateExceptionIllegalStateExceptioncheckState(boolean expression, String errorMessageTemplate, Object... errorMessageArgs)类似于checkArgument但抛出的是IllegalStateExceptionIllegalStateExceptioncheckElementIndex(int index, int size, String desc)校验索引是否有效大于等于0且小于size。如果无效则抛出IndexOutOfBoundsExceptionIndexOutOfBoundsExceptioncheckPositionIndex(int index, int size, String desc)类似于checkElementIndex但允许索引等于sizeIndexOutOfBoundsExceptioncheckPositionIndexes(int start, int end, int size, String desc)校验起始和结束索引是否有效用于表示子序列范围IndexOutOfBoundsException