背景最近发现同事写了不少重复的工具类 , 发现其中很多功能 , SpringBoot 自带的都有 。于是整理了本文 , 希望能够帮助到大家!
断言1. 断言是一个逻辑判断 , 用于检查不应该发生的情况2. Assert 关键字在 JDK1.4 中引入 , 可通过 JVM 参数-enableassertions开启3. 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)
磊哥准备了新版300套书籍(一套20本 , 重13斤 , 近4000页) , 只要你加入 , 知识星球 , 就免费包邮送一套(20本纸质版面试题)给你!
内测 , 首发300套 , 不要错过
对象、数组、集合ObjectUtils1. 获取对象的基本信息
// 获取对象的类名 。参数为 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)
2. 判断工具
// 判断数组是否为空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 == 0CharSequence: length == 0Collection: Collection.isEmpty()Map: Map.isEmpty() */boolean isEmpty(Object obj)
3. 其他工具方法
// 向参数数组的末尾追加新元素 , 并返回一个新数组<A, O extends A> A[] addObjectToArray(A[] array, O obj)// 原生基础类型数组 --> 包装类数组Object[] toObjectArray(Object source)
StringUtils1. 字符串判断工具
// 判断字符串是否为 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)
2. 字符串操作工具
// 查找并替换指定子串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)
推荐阅读
- 宽恕别人就是宽恕自己?人生最大的宽容是饶恕
- 新生儿自己睡小床好吗?
- 女人虚伪的10个表现
- 古代妃嫔的孩子为什么不能自己养?古代宫女为什么不能生育
- 好听又霸气的句子?写给自己的霸气一段话个性说说
- 哪些生肖女人不靠男人靠自己?做个女人不容易凡事靠自己
- 求职|考上公务员月薪4000,想辞职出来自己干,孩子请记住!我们是凡人
- 孔融让梨长大后的孔融做出了什么事?孔融让梨的害死了自己
- 如何锻炼肌肉长得快长得好
- 如何缓解运动后的肌肉酸疼呢?