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内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • log4j2使用filter过滤日志方式

    log4j2使用filter过滤日志方式

    这篇文章主要介绍了log4j2使用filter过滤日志方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-12-12
  • Java基础之序列化与反序列化详解

    Java基础之序列化与反序列化详解

    这篇文章主要介绍了Java基础之序列化与反序列化详解,文中有非常详细的代码示例,对正在学习java基础的小伙伴们有很好的帮助,需要的朋友可以参考下
    2021-04-04
  • 详解Spring Boot集成MyBatis(注解方式)

    详解Spring Boot集成MyBatis(注解方式)

    本篇文章主要介绍了详解Spring Boot集成MyBatis(注解方式),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-05-05
  • web.xml详解_动力节点Java学院整理

    web.xml详解_动力节点Java学院整理

    这篇文章给大家详细介绍了web.xml的相关知识,需要的朋友可以参考下
    2017-07-07
  • SpringBoot整合Redis时遇到连接问题的解决方法

    SpringBoot整合Redis时遇到连接问题的解决方法

    在使用Spring Boot整合Redis的过程中,经常会遇到连接问题,尤其是当Redis服务部署在远程服务器上时,所以本文给大家介绍了SpringBoot整合Redis遇到连接问题的解决方法,需要的朋友可以参考下
    2024-11-11
  • Java二维码登录流程实现代码(包含短地址生成,含部分代码)

    Java二维码登录流程实现代码(包含短地址生成,含部分代码)

    近年来,二维码的使用越来越风生水起,本篇文章主要介绍了Java二维码登录流程实现代码,其中包含短地址生成,有兴趣的可以了解一下。
    2016-12-12
  • Spring Boot 快速使用 HikariCP 连接池配置详解

    Spring Boot 快速使用 HikariCP 连接池配置详解

    Spring Boot 2.x 将其作为默认的连接池组件,项目中添加 spring-boot-starter-jdbc 或 spring-boot-starter-data-jpa 模块后,HikariCP 依赖会被自动引入,这篇文章主要介绍了Spring Boot使用HikariCP连接池配置详解,需要的朋友可以参考下
    2023-06-06
  • SpringBoot接收JSON类型的参数方式

    SpringBoot接收JSON类型的参数方式

    这篇文章主要介绍了SpringBoot接收JSON类型的参数方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-03-03
  • SpringBoot应用的打包和发布实现

    SpringBoot应用的打包和发布实现

    本文主要介绍了SpringBoot应用的打包和发布实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-04-04
  • springmvc中下载中文文件名称为下划线的解决方案

    springmvc中下载中文文件名称为下划线的解决方案

    这篇文章主要介绍了springmvc中下载中文文件名称为下划线的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-01-01

最新评论