Java中StringUtils與CollectionUtils和ObjectUtil概念講解
一.解析
概念
StringUtils概念
StringUtils 方法的操作對(duì)象是 Java.lang.String 類型的對(duì)象,是 JDK 提供的 String 類型操作方法的補(bǔ)充,并且是 null 安全的(即如果輸入?yún)?shù) String 為 null 則不會(huì)拋出 NullPointerException ,而是做了相應(yīng)處理,例如,如果輸入為 null 則返回也是 null 等,具體可以查看源代碼)。
除了構(gòu)造器,StringUtils 中一共有130多個(gè)方法,并且都是 static 的,所以我們可以這樣調(diào)用 StringUtils.xxx()
CollectionUtils概念
CollectionUtils是日常經(jīng)常會(huì)用到的一個(gè)工具類,在包org.apache.commons.collections中。
目前最常用到的兩個(gè)方法是CollectionUtils.isEmpty()以及CollectionUtils.isNotEmpty()。
ObjectUtil概念
ObjectUtils工具類會(huì)嘗試優(yōu)雅的處理null輸入,對(duì)于空輸入通常不會(huì)拋出異常,每個(gè)方法都更詳細(xì)的記錄其行為。在標(biāo)準(zhǔn)的應(yīng)用程序中ObjectUtils類不應(yīng)該被實(shí)例化。
二.區(qū)別
1.StringUtils和 CollectionUtils分別用來(lái)判斷字符串和集合,ObjectUtil用來(lái)判斷對(duì)象
2.想要字符串是否為空,先要了解“” 和null的區(qū)別
null 是沒(méi)有地址的,可以理解為空指針。當(dāng)對(duì)象在構(gòu)造器初始化時(shí),如果沒(méi)有被賦予初始值,那么會(huì)默認(rèn)賦值為 null。
“”空字符串是一個(gè) String 對(duì)象是有地址的,只是內(nèi)容是空。
isEmpty() 和 isBlank() 區(qū)別在于 isEmpty() 多了對(duì)于空格的判斷,如果字符串只包含有空格,isEmpty()判定是非空的,而 isBlank() 判斷空格依然是空字符串
StringUtils代碼測(cè)試
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))看結(jié)果

3.判斷集合是否為空,也需要了解size==0和null
- null 是沒(méi)有地址的,可以理解為空指針。當(dāng)對(duì)象在構(gòu)造器初始化時(shí),如果沒(méi)有被賦予初始值,那么會(huì)默認(rèn)賦值為 null。
- size==0表示集合已經(jīng)指向一個(gè)地址,但是指向的對(duì)象中沒(méi)有元素。
看代碼
List<String> list=new ArrayList();
list.add("張三");
list.add("李四");
list.add("王五");
if(CollectionUtils.isNotEmpty(list)){
System.out.println("有值")
}else{
System.out.println("無(wú)值")
}結(jié)果

4.同樣的,判斷對(duì)象是否為空,也分為地址為空和值為空,如果地址為空,ObjectUtil.isEmpty結(jié)果為true,值為空結(jié)果為false
這里需要?jiǎng)?chuàng)建實(shí)體類這個(gè)步驟省去了直接上代碼
user user=new User()
user userDto= null;
System.out.println("user:"+Object.isEmpty(user));
System.out.println("userDto:"+Object.isEmpty(userDto));看結(jié)果

三.總結(jié)
1.StringUtils多用來(lái)判讀字符串字段,ObjectUtil多用來(lái)判斷對(duì)象,CollectionUtils多用來(lái)判斷集合
2.看情況而定, 有時(shí)我們的對(duì)象是空的時(shí)候有時(shí)這些方法有時(shí)會(huì)失效, 這是我們需要找尋其他的方法來(lái)進(jìn)行非空判斷, 避免"空指針異常"
到此這篇關(guān)于Java中StringUtils與CollectionUtils和ObjectUtil概念講解的文章就介紹到這了,更多相關(guān)Java StringUtils內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
web.xml詳解_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
這篇文章給大家詳細(xì)介紹了web.xml的相關(guān)知識(shí),需要的朋友可以參考下2017-07-07
SpringBoot整合Redis時(shí)遇到連接問(wèn)題的解決方法
在使用Spring Boot整合Redis的過(guò)程中,經(jīng)常會(huì)遇到連接問(wèn)題,尤其是當(dāng)Redis服務(wù)部署在遠(yuǎn)程服務(wù)器上時(shí),所以本文給大家介紹了SpringBoot整合Redis遇到連接問(wèn)題的解決方法,需要的朋友可以參考下2024-11-11
Java二維碼登錄流程實(shí)現(xiàn)代碼(包含短地址生成,含部分代碼)
近年來(lái),二維碼的使用越來(lái)越風(fēng)生水起,本篇文章主要介紹了Java二維碼登錄流程實(shí)現(xiàn)代碼,其中包含短地址生成,有興趣的可以了解一下。2016-12-12
Spring?Boot?快速使用?HikariCP?連接池配置詳解
Spring Boot 2.x 將其作為默認(rèn)的連接池組件,項(xiàng)目中添加 spring-boot-starter-jdbc 或 spring-boot-starter-data-jpa 模塊后,HikariCP 依賴會(huì)被自動(dòng)引入,這篇文章主要介紹了Spring?Boot使用HikariCP連接池配置詳解,需要的朋友可以參考下2023-06-06
SpringBoot接收J(rèn)SON類型的參數(shù)方式
這篇文章主要介紹了SpringBoot接收J(rèn)SON類型的參數(shù)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2025-03-03
SpringBoot應(yīng)用的打包和發(fā)布實(shí)現(xiàn)
本文主要介紹了SpringBoot應(yīng)用的打包和發(fā)布實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-04-04

