Java中StringUtils與CollectionUtils和ObjectUtil概念講解
一.解析
概念
StringUtils概念
StringUtils 方法的操作對象是 Java.lang.String 類型的對象,是 JDK 提供的 String 類型操作方法的補充,并且是 null 安全的(即如果輸入?yún)?shù) String 為 null 則不會拋出 NullPointerException ,而是做了相應(yīng)處理,例如,如果輸入為 null 則返回也是 null 等,具體可以查看源代碼)。
除了構(gòu)造器,StringUtils 中一共有130多個方法,并且都是 static 的,所以我們可以這樣調(diào)用 StringUtils.xxx()
CollectionUtils概念
CollectionUtils是日常經(jīng)常會用到的一個工具類,在包org.apache.commons.collections中。
目前最常用到的兩個方法是CollectionUtils.isEmpty()以及CollectionUtils.isNotEmpty()。
ObjectUtil概念
ObjectUtils工具類會嘗試優(yōu)雅的處理null輸入,對于空輸入通常不會拋出異常,每個方法都更詳細的記錄其行為。在標(biāo)準(zhǔn)的應(yīng)用程序中ObjectUtils類不應(yīng)該被實例化。
二.區(qū)別
1.StringUtils和 CollectionUtils分別用來判斷字符串和集合,ObjectUtil用來判斷對象
2.想要字符串是否為空,先要了解“” 和null的區(qū)別
null 是沒有地址的,可以理解為空指針。當(dāng)對象在構(gòu)造器初始化時,如果沒有被賦予初始值,那么會默認賦值為 null。
“”空字符串是一個 String 對象是有地址的,只是內(nèi)容是空。
isEmpty() 和 isBlank() 區(qū)別在于 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))
看結(jié)果
3.判斷集合是否為空,也需要了解size==0和null
- null 是沒有地址的,可以理解為空指針。當(dāng)對象在構(gòu)造器初始化時,如果沒有被賦予初始值,那么會默認賦值為 null。
- size==0表示集合已經(jīng)指向一個地址,但是指向的對象中沒有元素。
看代碼
List<String> list=new ArrayList(); list.add("張三"); list.add("李四"); list.add("王五"); if(CollectionUtils.isNotEmpty(list)){ System.out.println("有值") }else{ System.out.println("無值") }
結(jié)果
4.同樣的,判斷對象是否為空,也分為地址為空和值為空,如果地址為空,ObjectUtil.isEmpty結(jié)果為true,值為空結(jié)果為false
這里需要創(chuàng)建實體類這個步驟省去了直接上代碼
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多用來判讀字符串字段,ObjectUtil多用來判斷對象,CollectionUtils多用來判斷集合
2.看情況而定, 有時我們的對象是空的時候有時這些方法有時會失效, 這是我們需要找尋其他的方法來進行非空判斷, 避免"空指針異常"
到此這篇關(guān)于Java中StringUtils與CollectionUtils和ObjectUtil概念講解的文章就介紹到這了,更多相關(guān)Java StringUtils內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
SpringBoot+ECharts是如何實現(xiàn)數(shù)據(jù)可視化的
今天帶大家學(xué)習(xí)的是關(guān)于Java的相關(guān)知識,文章圍繞著SpringBoot+ECharts怎么實現(xiàn)數(shù)據(jù)可視化展開,文中有非常詳細的介紹及代碼示例,需要的朋友可以參考下2021-06-06Quarkus中ConfigSourceInterceptor的加密配置實現(xiàn)
這篇文章主要為大家介紹Quarkus中ConfigSourceInterceptor加密配置的實現(xiàn)方式,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-02-02Spring實戰(zhàn)之使用@Resource配置依賴操作示例
這篇文章主要介紹了Spring實戰(zhàn)之使用@Resource配置依賴操作,結(jié)合實例形式分析了Spring使用@Resource配置依賴具體步驟、實現(xiàn)及測試案例,需要的朋友可以參考下2019-12-12java 實現(xiàn)單鏈表逆轉(zhuǎn)詳解及實例代碼
這篇文章主要介紹了java 實現(xiàn)單鏈表逆轉(zhuǎn)實例代碼的相關(guān)資料,需要的朋友可以參考下2017-02-02