Java判斷一個(gè)實(shí)體是不是空的簡單方法
在Java中,我們可以使用以下方法來判斷一個(gè)實(shí)體是否為空:
1、對象是否為null
可以使用Java中的==
運(yùn)算符來判斷一個(gè)對象是否為null,如果對象為null,則表示對象為空。
例如:
Object obj = null; if (obj == null) { System.out.println("對象為空"); }
2、字符串是否為空
可以使用Java中的isEmpty()
方法來判斷一個(gè)字符串是否為空,如果字符串為空,則返回true。
例如:
String str = ""; if (str.isEmpty()) { System.out.println("字符串為空"); }
3、集合是否為空
可以使用Java中的isEmpty()
方法來判斷一個(gè)集合是否為空,如果集合為空,則返回true。
例如:
List<String> list = new ArrayList<String>(); if (list.isEmpty()) { System.out.println("集合為空"); }
4、數(shù)組是否為空
在Java中,數(shù)組是一個(gè)對象,可以使用==
運(yùn)算符來判斷一個(gè)數(shù)組是否為空,如果數(shù)組為null,則表示數(shù)組為空。
例如:
int[] arr = null; if (arr == null) { System.out.println("數(shù)組為空"); }
綜上所述,我們可以使用不同的方法來判斷一個(gè)實(shí)體是否為空,具體使用哪種方法取決于實(shí)體的類型和具體情況。
附:Java 判斷實(shí)體類對象的全部屬性是否空
代碼:
public boolean checkObjAllFieldsIsNull(Object object) { // 如果對象為null直接返回true if (null == object) { return true; } try { // 挨個(gè)獲取對象屬性值 for (Field f : object.getClass().getDeclaredFields()) { f.setAccessible(true); // 如果有一個(gè)屬性值不為null,且值不是空字符串,就返回false if (f.get(object) != null && StringUtils.isNotBlank(f.get(object).toString())) { return false; } } } catch (Exception e) { e.printStackTrace(); } return true; }
如果持久層用的是 MyBatis-Plus 框架,上面的代碼會(huì)一直返回 false,這時(shí)候需要先在需要判斷的實(shí)力類對象中加入 serialVersionUID 全局參數(shù)
private static final long serialVersionUID = 1L;
再使用下面的代碼:
import java.lang.reflect.Field; /** * 判斷實(shí)體類對象的屬性值是否全部為空 * @param object * @return */ public boolean checkObjAllFieldsIsNull(Object object) { // 如果對象為null直接返回true if (null == object) { return true; } try { // 挨個(gè)獲取對象屬性值 for (Field f : object.getClass().getDeclaredFields()) { f.setAccessible(true); // 如果屬性名不為serialVersionUID,有一個(gè)屬性值不為null,且值不是空字符串,就返回false if (!"serialVersionUID".equals(f.getName()) && f.get(object) != null && StringUtils.isNotBlank(f.get(object).toString())) { return false; } } } catch (Exception e) { e.printStackTrace(); } return true; }
總結(jié)
到此這篇關(guān)于Java判斷一個(gè)實(shí)體是不是空的文章就介紹到這了,更多相關(guān)Java判斷實(shí)體是不是空內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
java實(shí)現(xiàn)的xml格式化實(shí)現(xiàn)代碼
這篇文章主要介紹了java實(shí)現(xiàn)的xml格式化實(shí)現(xiàn)代碼,需要的朋友可以參考下2016-11-11Spring Security 在 Spring Boot 中的使用詳解【集中式】
這篇文章主要介紹了Spring Security 在 Spring Boot 中的使用【集中式】,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-10-10SpringBoot項(xiàng)目Jar包使用systemctl運(yùn)行過程
這篇文章主要介紹了SpringBoot項(xiàng)目Jar包使用systemctl運(yùn)行過程,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2025-03-03MyBatisPlus條件構(gòu)造器的實(shí)現(xiàn)示例
本文主要介紹了MyBatisPlus條件構(gòu)造器的實(shí)現(xiàn)示例,主要包括了QueryWrapper,UpdateWrapper,LambdaQueryWrapper,LambdaUpdateWrapper這四種,具有一定的參考價(jià)值,感興趣的可以了解下2023-12-12Java去掉小數(shù)點(diǎn)后面無效0的方案與建議
當(dāng)前小數(shù)點(diǎn)后面的位數(shù)過多的時(shí)候,多余的0沒有實(shí)際意義,下面這篇文章主要給大家介紹了關(guān)于Java去掉小數(shù)點(diǎn)后面無效0的方案與建議,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-07-07springboot手寫一個(gè)自己的starter源碼
在本篇文章里小編給大家整理了關(guān)于springboot手寫一個(gè)自己的starter源碼的全部知識(shí)點(diǎn)內(nèi)容,需要的朋友們學(xué)習(xí)下。2019-06-06