SpringBoot内置工具类,告别瞎写工具类了

不知大家有没有注意到,接手的项目中存在多个重复的工具类,发现其中很多功能,Spring 自带的都有 。于是整理了本文,希望能够帮助到大家!
一、断言

  • 断言是一个逻辑判断,用于检查不应该发生的情况
  • Assert 关键字在 JDK1.4 中引入,可通过 JVM 参数-enableassertions开启
  • SpringBoot 中提供了 Assert 断言工具类,通常用于数据合法性检查
查看代码// 要求参数 object 必须为非空(Not Null),否则抛出异常,不予放行// 参数 message 参数用于定制异常信息 。void notNull(Object object, String message)// 要求参数必须空(Null),否则抛出异常,不予『放行』 。// 和 notNull() 方法断言规则相反void isNull(Object object, String message)// 要求参数必须为真(True),否则抛出异常,不予『放行』 。void isTrue(boolean expression, String message)// 要求参数(List/Set)必须非空(Not Empty),否则抛出异常,不予放行void notEmpty(Collection collection, String message)// 要求参数(String)必须有长度(即,Not Empty),否则抛出异常,不予放行void hasLength(String text, String message)// 要求参数(String)必须有内容(即,Not Blank),否则抛出异常,不予放行void hasText(String text, String message)// 要求参数是指定类型的实例,否则抛出异常,不予放行void isInstanceOf(Class type, Object obj, String message)// 要求参数 `subType` 必须是参数 superType 的子类或实现类,否则抛出异常,不予放行void isAssignable(Class superType, Class subType, String message)
二、对象、数组、集合1.ObjectUtils
获取对象的基本信息:
查看代码 // 获取对象的类名 。参数为 null 时,返回字符串:"null"String nullSafeClassName(Object obj)// 参数为 null 时,返回 0int nullSafeHashCode(Object object)// 参数为 null 时,返回字符串:"null"String nullSafeToString(boolean[] array)// 获取对象 HashCode(十六进制形式字符串) 。参数为 null 时,返回 0String getIdentityHexString(Object obj)// 获取对象的类名和 HashCode 。参数为 null 时,返回字符串:""String identityToString(Object obj)// 相当于 toString()方法,但参数为 null 时,返回字符串:""String getDisplayString(Object obj)
判断工具:
查看代码 // 判断数组是否为空boolean isEmpty(Object[] array)// 判断参数对象是否是数组boolean isArray(Object obj)// 判断数组中是否包含指定元素boolean containsElement(Object[] array, Object element)// 相等,或同为 null时,返回 trueboolean nullSafeEquals(Object o1, Object o2)/*** 判断参数对象是否为空,判断标准为:*Optional: Optional.empty()*Array: length == 0*CharSequence: length == 0*Collection: Collection.isEmpty()*Map: Map.isEmpty()*/boolean isEmpty(Object obj)
其他工具方法:
// 向参数数组的末尾追加新元素,并返回一个新数组<A, O extends A> A[] addObjectToArray(A[] array, O obj)// 原生基础类型数组 --> 包装类数组Object[] toObjectArray(Object source)2.StringUtils
字符串判断工具:
查看代码 // 判断字符串是否为 null,或 "" 。注意,包含空白符的字符串为非空boolean isEmpty(Object str)// 判断字符串是否是以指定内容结束 。忽略大小写boolean endsWithIgnoreCase(String str, String suffix)// 判断字符串是否已指定内容开头 。忽略大小写boolean startsWithIgnoreCase(String str, String prefix)// 是否包含空白符boolean containsWhitespace(String str)// 判断字符串非空且长度不为 0,即,Not Emptyboolean hasLength(CharSequence str)// 判断字符串是否包含实际内容,即非仅包含空白符,也就是 Not Blankboolean hasText(CharSequence str)// 判断字符串指定索引处是否包含一个子串 。boolean substringMatch(CharSequence str, int index, CharSequence substring)// 计算一个字符串中指定子串的出现次数int countOccurrencesOf(String str, String sub)

经验总结扩展阅读