Java开发中优雅的判空方法

本文总结了Java开发中判断字符串、集合和数组是否为空的多种优雅方法,包括不同效率和兼容性的考量。对于字符串,提到了几种常见且高效的方式;在处理集合时,推荐了isEmpty()方法的使用,同时也提醒了可能的空指针异常问题;对于数组和对象,介绍了判断为空的技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一:java判断字符串是否为空的方法总结

方法一:开发中最常用的方法,看起来也比较高大上:

 if(StringUtils.isNotBlank(str))//判断字符串不为空if(StringUtils.isBlank(str))//判断字符串为空

方法二: 比较简单直接的方法

   if(s == null ||"".equals(s));

方法三: 比较字符串长度, 效率高, 比较绕:

   if(s == null || s.length() <= 0);

方法四: 效率和方法三几乎相等, 但出于兼容性考虑,不建议此方法.

  if(s == null || s.isEmpty());

方法五: 这是一种比较直观,简便的方法,而且效率也非常的高,与方法三、四的效率差不多:

   if (s == null || s == "");

二:判断集合为空
1、方法一:

if(list!=null && list.size()>=0){
//判断list是否为空,且list集合中包含的元素个数小于等于0个
}

2、方法二:
这是最常用的方法,简单便捷

使用isEmpty() 方法,

isEmpty()判断list集合有没有元素,如果有元素返回false,没有返回true,如果集合本身设置为null,则会报空指针异常,

如这样:List list = null;

if(list.isEmpty()){//如果为空,则返回null
   return null;//因为list集合里没有元素时,返回的是[]不是null
}else{
   return lsit;//不为空,返回list集合
}

三:判断数组是否为空

String[] suzu = new String[]{};
// 判断suzu不为null,且素组长度大于0
if(suzu != null && suzu.length() > 0){
}
注意:数组长度等于0 ,但不一定为null

判断对象是否为空

 if (Objects.isNull(message) || StringUtils.isBlank(message.getText())) {
            log.error("checkMessageData message is null!");
            return false;
        }

解释:
isNotBlank和isNotEmpty的区别:

 isNotBlank
判断某字符串是否不为空且长度不为0且不由空白符(whitespace)构成,等于!isBlank(String str)
 等价于:str != null && str.length > 0 && str.trim().length > 0
 
  StringUtils.isNotBlank(null) = false
  StringUtils.isNotBlank("") = false
  StringUtils.isNotBlank(" ") = false
  StringUtils.isNotBlank(" ") = false
  StringUtils.isNotBlank("\t \n \f \r") = false
  StringUtils.isNotBlank("\b") = true
  StringUtils.isNotBlank("bob") = true
  StringUtils.isNotBlank(" bob ") = true
isNotEmpty
判断某字符串是否非空,等于!isEmpty(String str)
等价于:str != null && str.length > 0
 StringUtils.isNotEmpty(null) = false
 StringUtils.isNotEmpty("") = false
 StringUtils.isNotEmpty(" ") = true
 StringUtils.isNotEmpty(" ") = true
 StringUtils.isNotEmpty("bob") = true
 StringUtils.isNotEmpty(" bob ") = true
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值