Java中StringUtils与CollectionUtils和ObjectUtil概念讲解

 更新时间:2022年12月27日 11:09:42   作者:十年(Sugar)  
这篇文章主要介绍了Java中StringUtils与CollectionUtils和ObjectUtil概念,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习吧

一.解析

概念

StringUtils概念

StringUtils 方法的操作对象是 Java.lang.String 类型的对象,是 JDK 提供的 String 类型操作方法的补充,并且是 null 安全的(即如果输入参数 String 为 null 则不会抛出 NullPointerException ,而是做了相应处理,例如,如果输入为 null 则返回也是 null 等,具体可以查看源代码)。

除了构造器,StringUtils 中一共有130多个方法,并且都是 static 的,所以我们可以这样调用 StringUtils.xxx()

CollectionUtils概念

CollectionUtils是日常经常会用到的一个工具类,在包org.apache.commons.collections中。

目前最常用到的两个方法是CollectionUtils.isEmpty()以及CollectionUtils.isNotEmpty()。

ObjectUtil概念

ObjectUtils工具类会尝试优雅的处理null输入,对于空输入通常不会抛出异常,每个方法都更详细的记录其行为。在标准的应用程序中ObjectUtils类不应该被实例化。

二.区别

1.StringUtils和 CollectionUtils分别用来判断字符串和集合,ObjectUtil用来判断对象

2.想要字符串是否为空,先要了解“” 和null的区别

null 是没有地址的,可以理解为空指针。当对象在构造器初始化时,如果没有被赋予初始值,那么会默认赋值为 null。

“”空字符串是一个 String 对象是有地址的,只是内容是空。

isEmpty() 和 isBlank() 区别在于 isEmpty() 多了对于空格的判断,如果字符串只包含有空格,isEmpty()判定是非空的,而 isBlank() 判断空格依然是空字符串

StringUtils代码测试

String s1=null;
String s2="";
System.out.println("s1:"+s1+":"+StringUtils.isEmpty(s1))
System.out.println("s2:"+s2+":"+StringUtils.isEmpty(s2))
System.out.println("s1:"+s1+":"+StringUtils.isBlank(s1))
System.out.println("s2:"+s2+":"+StringUtils.isBlank(s2))

看结果

3.判断集合是否为空,也需要了解size==0和null

  • null 是没有地址的,可以理解为空指针。当对象在构造器初始化时,如果没有被赋予初始值,那么会默认赋值为 null。
  • size==0表示集合已经指向一个地址,但是指向的对象中没有元素。

看代码

List<String> list=new ArrayList();
list.add("张三");
list.add("李四");
list.add("王五");
if(CollectionUtils.isNotEmpty(list)){
    System.out.println("有值")
}else{
System.out.println("无值")
}

结果

4.同样的,判断对象是否为空,也分为地址为空和值为空,如果地址为空,ObjectUtil.isEmpty结果为true,值为空结果为false

这里需要创建实体类这个步骤省去了直接上代码

user user=new User()
user userDto= null;
System.out.println("user:"+Object.isEmpty(user));
System.out.println("userDto:"+Object.isEmpty(userDto));

看结果

三.总结

1.StringUtils多用来判读字符串字段,ObjectUtil多用来判断对象,CollectionUtils多用来判断集合

2.看情况而定, 有时我们的对象是空的时候有时这些方法有时会失效, 这是我们需要找寻其他的方法来进行非空判断, 避免"空指针异常"

到此这篇关于Java中StringUtils与CollectionUtils和ObjectUtil概念讲解的文章就介绍到这了,更多相关Java StringUtils内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 基于@JsonFormat的导包问题

    基于@JsonFormat的导包问题

    这篇文章主要介绍了关于@JsonFormat的导包问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-08-08
  • Tomcat安装配置及Eclipse配置详解

    Tomcat安装配置及Eclipse配置详解

    给大家介绍一下Tomcat安装配置及Eclipse配置的全部图文过程,如果你对这个还有不明白,一起跟着小编学习下。
    2017-11-11
  • SpringCache框架加载/拦截原理详解

    SpringCache框架加载/拦截原理详解

    这篇文章主要介绍了SpringCache框架加载/拦截原理详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-04-04
  • springboot为异步任务规划自定义线程池的实现

    springboot为异步任务规划自定义线程池的实现

    本文主要介绍了springboot为异步任务规划自定义线程池,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-06-06
  • AI算法实现五子棋(java)

    AI算法实现五子棋(java)

    这篇文章主要为大家详细介绍了AI算法实现五子棋,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-09-09
  • SpringSecurity权限控制实现原理解析

    SpringSecurity权限控制实现原理解析

    这篇文章主要介绍了SpringSecurity权限控制实现原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-03-03
  • Layui前后台交互数据获取java实例

    Layui前后台交互数据获取java实例

    下面小编就为大家分享一篇Layui前后台交互数据获取java实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-01-01
  • struts2实现多文件上传的示例代码

    struts2实现多文件上传的示例代码

    本篇文章主要介绍了struts2实现多文件上传的示例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-03-03
  • SpringBoot整合Thymeleaf的方法

    SpringBoot整合Thymeleaf的方法

    这篇文章主要介绍了SpringBoot整合Thymeleaf的方法,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-02-02
  • 基于Springboot疫苗接种行程管理系统的设计与实现

    基于Springboot疫苗接种行程管理系统的设计与实现

    本文主要介绍了基于Springboot实现的疫苗接种行程管理系统的示例代码,系统主要实现个人疫苗接种管理、行程管理、病史管理、风险地区管理、核酸检测报告结果上报、疫情新闻管理等功能,需要的可以参考一下
    2022-03-03

最新评论