① 判断非空,参数minStamp必须为非空,否则抛出异常,不予放行
// 最小时间戳不允许为空
Assert.notNull(minStamp, "minStamp不允许为空");
②判断为空,参数mapperByName必须为空,否则抛出异常,不予放行
// 若查找出有符合条件的mapper则抛出异常,并提示异常信息“。。。”
Assert.isNull(mapper, environment + "环境已存在相同的名称,任务失败!");
③要求参数必须为真true,否则抛出异常,不予放行
Assert.isTrue(StringUtils.isNotBlank(name),"员工姓名不能为空");
④要求list、set必须为有长度,即非空Not empty,否则抛出异常,不予放行
// 用法1:对传入的JsonArray进行判断,如果empty,不放行
Assert.notEmpty(jsonArray, "jsonArray is null");
// 用法2: 对传入的list集合进行判断,如果empty,不放行
public Result deleteByIds(List<Long> ids){
Assert.notEmpty(ids, "ids can not be null or empty");
// 执行删除操作
}
⑤要求参数String必须有内容,即Not blank,否则抛出异常不予放行
Assert.hasText(name, "当前人姓名不可为空");
Assert.hasText(ossPath, "文件路径不可为空");
⑥要求输入的参数必须是某种数据类型,否则抛出异常,不予放行
public void doSomething(Object object1, Object object2){
Assert.isInstanceOf(List.class, object1, "输入参数类型错误!必须为List格式参数");
Assert.isInstanceOf(String.class, object2, "输入参数类型错误!必须为String格式参数");
}
⑦要求参数’subType’必须是superType的子类或者实现类,否则抛出异常,不予通行
void isAssignable(Class superType, Class subType, String message);
1.获取对象的基本信息
//获取对象的类名。参数为null时候,返回字符串:“null”
String nullSafeClassName(Object obj);// 参数为null 时, 返回0
int nullSafeHashCode(Object obj);// 参数为null时。返回字符串:“null”
String nullSafeToString(boolean[] array)// 获取对象的HashCode(十六进制形式字符串),参数为null时候,返回0
String getIdentityHexString(Object obj)
// 如果beanMap为空,是一个空map集合,直接返回
if (MapUtils.isEmpty(beanMap)) {
return;
}
// 如果list为空,是一个空list
if (CollectionUtils.isEmpty(list)) {
return Collections.emptyList();
}
// 获取所有字段,并对获取到的fields的数组进行非空判断
Field[] fields = FieldUtils.getAllFields(clazz);
if (ArrayUtils.isEmpty(fields)) {
return Collections.emptyList();
}
// 获取数组值
if (clazz.isArray()) {
return Array.newInstance(clazz.getComponentType(), 0);
}
if(applyingList.contains(String str)) {
// 如果申请列表当中有这个str元素,对应的状态设为0;
permissionDTO.setStatus(0);
}
判断参数对象是否为空,判断标准为:
Optional: Optional.empty()
Array: length == 0
CharSequence: length == 0
Collection: Collection.isEmpty()
Map: map.isEmpty()
// 向参数数组的末尾追加新元素,并返回一个新数组
<A, O extends A> A[] addObjectToArray(A[] array, O obj)
// 原生基础类数组-->包装类数组
Object[] toObjectArray(Object source)
if (StringUtils.isEmpty(workNo)) {
return workNo; // 如果工号为空,返回输入的工号
}
②字符串是否以xxx开头或结尾忽略大小写
boolean endWithIgnoreCase(String str,String suffix);
boolean StartWithIgnoreCase(String str,String prefix);
③是否包含空白符
boolean containsWhiteSpace(String str)
④判断字符串非空且长度不为0,即 not empty
boolean hasLength(charSequence str)
⑤判断字符串是否包含实际内容,即非仅包含空白符
boolean hasText(CharSequence str)
⑥判断字符串指定索引处是否包含一个子串
Boolean subStringMatch(charSequence str,int index, charSequence substring)
⑦ 计算一个字符串中指定子串出现的次数
int countOccurencesOf(String str, String sub)
①查找并替换指定子串
private static final ThreadLocal<String> THREAD_TRACE_ID = ThreadLocal.withInitial(
// 获取一个uuid并把里面的"-" 替换成""
() -> UUID.randomUUID().toString().replace("-", ""));
②去除尾部的特定字符
String trimTrailingCharacter(String str, char trailingCharacter)
③去除头部的特定字符
String trimLeadingCharacter(String str,char leadingCharacter)
④去除头部的空白符
String trimLeadingWhitespace(String str);
⑤去除尾部的空白符
String trimTrailingWhiteSpace(String str);
⑥去除头部和尾部的空白符
String trimWhitespace(String str);
**例子CsvReader.java中**
public void setTrimWhitespace(boolean trimWhitespace) {
userSettings.trimWhitespace = trimWhitespace;
}
⑦删除开头、结尾、中间的空白符
String trimAllWhiteSpace(String str);
⑧删除指定子串
String delete(String inString, String pattern)
⑨删除指定字符(可以是多个)
String deleteAny(String inString, String charToDelete)
⑩对数组的每一项执行trim()方法
String[] trimArrayElements(String[] array)
将URL字符串进行解码
String uriDecode(String source, Charset charset)