Java中StringUtils与CollectionUtils和ObjectUtil概念讲解
作者:十年(Sugar)
一.解析
概念
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内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!