对象的判断(Objects工具类-Java自带)
Objects.equals(Object a, Object b)
如果参数相等返回true,否则false。 因此,如果这两个参数是null ,返回 true,如果只有一个参数为null , 返回 false。 否则,通过使用第一个参数的equals方法确定相等性。
public static boolean equals(Object a, Object b) {
return (a == b) || (a != null && a.equals(b));
}
Objects.isNull(Object obj)
如果提供的参考是 null返回 true,否则返回 false 。
public static boolean isNull(Object obj) {
return obj == null;
}
Objects.nonNull(Object obj)
如果提供的参考是非 null返回 true,否则返回 false 。
public static boolean nonNull(Object obj) {
return obj != null;
}
Objects.toString(Object o, String nullDefault)
如果第一个参数不是 null ,则返回在第一个参数上调用 toString的结果,否则返回第二个参数。
public static String toString(Object o, String nullDefault) {
return (o != null) ? o.toString() : nullDefault;
}
字符串的判断( StringUtils工具类-Hutool)
isEmpty(String str)
判断某字符串是否为空,为空的标准是 str==null 或 str.length()==0
isNotEmpty(String str)
判断某字符串是否非空,等于 ! isEmpty(String str)
isBlank(String str)
判断某字符串是否为 空 或 长度为0 或由 空白(whitespace)构成
StringUtils.isBlank(" ") = true
StringUtils.isBlank("\t \n \f \r") = true //对于制表符、换行符、换页符和回车符
StringUtils.isBlank() //均识为空白符
StringUtils.isBlank("\b") = false //"\b"为单词边界符
isNotBlank(String str)
判断某字符串是否为 空 或 长度为0 或由 空白(whitespace)构成
isNoneBlank(String str)
检查是否没有任何为空(“”)、null、或仅空白
StringUtils.isNoneBlank((String) null) = false
StringUtils.isNoneBlank((String[]) null) = true
StringUtils.isNoneBlank("") = false
StringUtils.isNoneBlank(null) = true
StringUtils.isNoneBlank(" ") = false
注意
- isEmpty和isBlank不同的地方, isEmpty认为空格(无论单空格还是多空格)都是不是空. 而isBlank 认为空格,换行符号(\n),tab(\t)都是空。
- isNoneBlank 和isNotBlank 在同一个参数的情况下, 含义是一样的, 但是isNoneBlank 的参数, 可以是一个字符数组, 当isNoneBlank 的参数是一个数组的时候, 就是说有一个参数为null, 那么返回都会返回false。
- 一般情况下 isNoneBlank 用于校验表单的参数是否为空. 如果有一个为空, 都不满足条件。
断言的使用(Assert工具类)
断言的理解: 断言他满足条件不抛异常; 不满足断言时产生异常;
常常结合try一起使用(或者全局定义,异常抛出)
- 下列方法都有重载,可自定义抛出异常,下面举个例子
public static void main(String[] args) {
try {
Assert.isTrue(false, "这里出错了");
// Assert.isTrue(false);
// Assert.isTrue(false, () -> new CommonBizException("这里出错了"));
} catch (Exception e) {
log.error("报错原因:[{}]", e.getMessage());
}
}
输出:[main] ERROR ***** - 报错原因:[这里出错了]
notNull(Object object)
当 object 为 null 时抛出异常; 理解: 断言他不是空, 当是空的时候不满足断言则出异常
isNull(Object object)
当 object 不为 null 时抛出异常;
理解:断言他是空, 当他不是空时,不满足断言则出异常
notEmpty(Collection collection)
当 collection 为空时抛异常;
理解:断言他不是空, 当他时空时,不满足断言,抛异常;
isTrue(boolean expression)
当 expression不为 true 时抛出异常;
理解:断言他是true, 当他不是true,是不满足断言则出异常
isFalse(boolean expression)
当 expression不为false 时抛出异常;
理解:断言他是false, 当他不是false,是不满足断言则出异常
hasText(String text)
当 text 不是text时抛异常;
理解: 断言他是text, 当他不是text时不满足断言,抛异常