编码中经常遇到一些判空操作,这里总结了一下最常用的几种
1. String字符串判空操作
方法1:if(s != null || s.equals("")){逻辑…} 这种效率低
方法2:if(s != null || s.length() > 0){逻辑…} 效率比方法一的效率高
方法3:if(s != null || s.isEmpty() ){逻辑…}效率和方法二差不多,但是Strng的isEmpty()方法是1.6以上才生效
方法4(推荐):使用StringUtils
StringUtils.isEmpty判断某字符串是否为空,为空的标准是 str==null 或 str.length()0
StringUtils.isEmpty(" ") = false //注意在 StringUtils 中空格作非空处理
StringUtils.isBlank判断某字符串是否为空,为空的标准是strnull 或 str.length()==0或由空白符(whitespace) 构成
还有StringUtils.isNotEmpty()和StringUtils.isNotBlank()
2. Long类型判空操作
注意null 放在前面,否则还是容易出现空指针异常
null != res.getResult().getEmpId() && res.getResult().getEmpId() > 0
3. 数组和集合判空
3.1 数组判空
//第一种:
if (arr == null || arr.length == 0)
//第二种(推荐):
ArrayUtils.isEmpty(arr);
3.2 集合判空
//第一种:
if (strList == null || strList.size() == 0)
//第二种(推荐):
CollectionUtils.isNotEmpty(accessorySheetList)