不知大家有没有注意到,接手的项目中存在多个重复的工具类,发现其中很多功能 , Spring 自带的都有 。于是整理了本文,希望能够帮助到大家!
一、断言
- 断言是一个逻辑判断,用于检查不应该发生的情况
- Assert 关键字在 JDK1.4 中引入 , 可通过 JVM 参数-enableassertions开启
- SpringBoot 中提供了 Assert 断言工具类,通常用于数据合法性检查
查看代码
二、对象、数组、集合1.ObjectUtils// 要求参数 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)
获取对象的基本信息:
查看代码
判断工具: // 获取对象的类名 。参数为 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)
查看代码
// 查找并替换指定子串String replace(String inString, String oldPattern, String newPattern)// 去除尾部的特定字符String trimTrailingCharacter(String str, char trailingCharacter)// 去除头部的特定字符String trimLeadingCharacter(String str, char leadingCharacter)// 去除头部的空白符String trimLeadingWhitespace(String str)// 去除头部的空白符String trimTrailingWhitespace(String str)// 去除头部和尾部的空白符String trimWhitespace(String str)// 删除开头、结尾和中间的空白符String trimAllWhitespace(String str)// 删除指定子串String delete(String inString, String pattern)// 删除指定字符(可以是多个)String deleteAny(String inString, String charsToDelete)// 对数组的每一项执行 trim() 方法String[] trimArrayElements(String[] array)// 将 URL 字符串进行解码String uriDecode(String source, Charset charset)
推荐阅读
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- python渗透测试入门——基础的网络编程工具
- 之四 2流高手速成记:SpringBoot整合redis及mongodb
- Springboot JSON 转换:Jackson篇
- SpringBoot整合ES+Kibana
- 手机截图怎么用(手机最强的截图工具)
- SpringBoot框架SpEL表达式注入漏洞复现与原理分析
- 手写自定义springboot-starter,感受框架的魅力和原理
- 一键上手时下最火AI作画工具
- 一 JPA入门学习集合springboot
- 关于Springboot启动报错 Whitelabel Error Page: This application has no explicit mapping