中文字幕日韩精品一区二区免费_精品一区二区三区国产精品无卡在_国精品无码专区一区二区三区_国产αv三级中文在线

java項(xiàng)目存在判空代碼 java實(shí)體類判空

java 如何實(shí)現(xiàn)判斷一個(gè)對(duì)象所有的屬性是否為空

其實(shí)不用那么麻煩,只用定義一個(gè)方法,然后使用下面的代碼片段來(lái)判斷字段是否為空:

我們提供的服務(wù)有:成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站建設(shè)、微信公眾號(hào)開(kāi)發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、湖里ssl等。為上千多家企事業(yè)單位解決了網(wǎng)站和推廣的問(wèn)題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的湖里網(wǎng)站制作公司

for (Field f : obj.getClass().getDeclaredFields()) {

f.setAccessible(true);

if (f.get(obj) == null) { //判斷字段是否為空,并且對(duì)象屬性中的基本都會(huì)轉(zhuǎn)為對(duì)象類型來(lái)判斷

......

}

}

java怎么判斷一個(gè)類為空

Guest guest = (Guest)session.getAttribute("guest");

if(guest==null){

getServletContext().getRequestDispatcher(

"/error.jsp").forward(request, response);

在java中null并不是一個(gè)對(duì)象,但可以判斷一個(gè)引用類型數(shù)據(jù)是否為空,用==來(lái)判斷,而且null同時(shí)用來(lái)釋放內(nèi)存,所以可以給對(duì)象用來(lái)賦值或者判斷。

java對(duì)象為空的判斷

/**?

*?判斷對(duì)象或?qū)ο髷?shù)組中每一個(gè)對(duì)象是否為空:?對(duì)象為null,字符序列長(zhǎng)度為0,集合類、Map為empty?

*??

*?@param?obj?

*?@return?

*/??

public?static?boolean?isNullOrEmpty(Object?obj)?{??

if?(obj?==?null)??

return?true;??

if?(obj?instanceof?CharSequence)??

return?((CharSequence)?obj).length()?==?0;??

if?(obj?instanceof?Collection)??

return?((Collection)?obj).isEmpty();??

if?(obj?instanceof?Map)??

return?((Map)?obj).isEmpty();??

if?(obj?instanceof?Object[])?{??

Object[]?object?=?(Object[])?obj;??

if?(object.length?==?0)?{??

return?true;??

}??

boolean?empty?=?true;??

for?(int?i?=?0;?i??object.length;?i++)?{??

if?(!isNullOrEmpty(object[i]))?{??

empty?=?false;??

break;??

}??

}??

return?empty;??

}??

return?false;??

}??

應(yīng)用場(chǎng)景:

讀取excel文件,轉(zhuǎn)化為一個(gè)二維數(shù)組:Object[][]?arrays

但是excel中有空行,所以需要過(guò)濾Object[][]?arrays中的空的一維數(shù)組:

Java代碼??

/***?

*?過(guò)濾數(shù)組中的空元素?

*??

*??

*?@param?arrays?

*?@return?

*/??

public?static?Object[][]?filterEmpty(Object[][]?arrays)?{??

int?sumNotNull?=?0;??

/***?

*?統(tǒng)計(jì)非空元素的總個(gè)數(shù)?

*/??

for?(int?i?=?0;?i??arrays.length;?i++)?{??

Object?object?=?arrays[i];??

if?(!ValueWidget.isNullOrEmpty(object)??

!SystemUtil.isNullOrEmpty((Object[])?object))?{//?判斷元素是否為空??

sumNotNull?=?sumNotNull?+?1;??

}??

}??

Object[][]?filtedObjs?=?new?Object[sumNotNull][];??

int?index?=?0;??

for?(int?i?=?0;?i??arrays.length;?i++)?{??

Object[]?object_tmp?=?arrays[i];??

if?(!ValueWidget.isNullOrEmpty(object_tmp)??

!SystemUtil.isNullOrEmpty((Object[])?object_tmp))?{//?判斷元素是否為空??

filtedObjs[index++]?=?object_tmp;??

}??

}??

return?filtedObjs;??

}??

判斷對(duì)象的所有成員變量是否為空

Java代碼??

/***?

*?Determine?whether?the?object's?fields?are?empty?

*??

*?@param?obj?

*?@param?isExcludeZero??:true:數(shù)值類型的值為0,則當(dāng)做為空;----false:數(shù)值類型的值為0,則不為空?

*??

*?@return?

*?@throws?SecurityException?

*?@throws?IllegalArgumentException?

*?@throws?NoSuchFieldException?

*?@throws?IllegalAccessException?

*/??

public?static?boolean?isNullObject(Object?obj,?boolean?isExcludeZero)??

throws?SecurityException,?IllegalArgumentException,??

NoSuchFieldException,?IllegalAccessException?{??

if(ValueWidget.isNullOrEmpty(obj)){//對(duì)象本身就為null??

return?true;??

}??

ListField?fieldList?=?ReflectHWUtils.getAllFieldList(obj.getClass());??

boolean?isNull?=?true;??

for?(int?i?=?0;?i??fieldList.size();?i++)?{??

Field?f?=?fieldList.get(i);??

Object?propertyValue?=?null;??

try?{??

propertyValue?=?getObjectValue(obj,?f);??

}?catch?(NoSuchFieldException?e)?{??

e.printStackTrace();??

}??

if?(!ValueWidget.isNullOrEmpty(propertyValue))?{//?字段不為空??

if?(propertyValue?instanceof?Integer)?{//?是數(shù)字??

if?(!((Integer)?propertyValue?==?0??isExcludeZero))?{??

isNull?=?false;??

break;??

}??

}?else?if?(propertyValue?instanceof?Double)?{//?是數(shù)字??

if?(!((Double)?propertyValue?==?0??isExcludeZero))?{??

isNull?=?false;??

break;??

}??

}else?if?(propertyValue?instanceof?Float)?{//?是數(shù)字??

if?(!((Float)?propertyValue?==?0??isExcludeZero))?{??

isNull?=?false;??

break;??

}??

}else?if?(propertyValue?instanceof?Short)?{//?是數(shù)字??

if?(!((Short)?propertyValue?==?0??isExcludeZero))?{??

isNull?=?false;??

break;??

}??

}else?{??

isNull?=?false;??

break;??

}??

}??

}??

return?isNull;??

}??

測(cè)試:

Java代碼??

@Test??

public?void?test_isNullObject()?throws?SecurityException,??

IllegalArgumentException,?NoSuchFieldException,??

IllegalAccessException?{??

Person2?p?=?new?Person2();??

Assert.assertEquals(true,?ReflectHWUtils.isNullObject(p,?true));??

Assert.assertEquals(false,?ReflectHWUtils.isNullObject(p,?false));??

p.setAddress("beijing");??

Assert.assertEquals(false,?ReflectHWUtils.isNullObject(p,?true));??

Assert.assertEquals(false,?ReflectHWUtils.isNullObject(p,?false));??

p.setAddress(null);??

p.setId(0);??

Assert.assertEquals(true,?ReflectHWUtils.isNullObject(p,?true));??

Assert.assertEquals(false,?ReflectHWUtils.isNullObject(p,?false));??

}??

Person2?源代碼(省略getter,setter方法):

Java代碼??

import?java.sql.Timestamp;??

public?class?Person2?{??

private?int?id;??

private?int?age;??

private?double?weight;??

private?String?personName;??

private?Timestamp?birthdate;??

public?String?identitify;??

protected?String?address;??

String?phone;??

}

java怎么判斷一個(gè)變量的值為空

方法一:

先把int類型的數(shù)據(jù)轉(zhuǎn)換成String類型,然后判斷String類型的數(shù)據(jù)是否為空。

示例代碼:

int point;

String val=point +"";

if("".equals(val)){

// do something...

}

PS:int point不是對(duì)象,int類型為空時(shí)默認(rèn)為0。

方法二:

如果point是int類型,則得到的結(jié)果是不可能是null的。

如果插入一條數(shù)據(jù)時(shí)沒(méi)有插入給字段,而數(shù)據(jù)庫(kù)里默認(rèn)是null的值的話,可以使用

Integer point= GiftInfo.getPoints();

然后判斷point是否等于空。

示例代碼:

Integer point= GiftInfo.getPoints();

if(point == null){

// do something...

}

PS:GiftInfo.getPoints返回的是Integer類型,Integer類型是包括基本類型的包裝類,不給賦值的時(shí)候?yàn)閚ull。

java前臺(tái)等于空的判斷

在Java中,一個(gè)類為空的判斷是常用的功能。但是各種類的空判斷卻不一樣

當(dāng)一個(gè)方法返回的是一個(gè)Object時(shí),應(yīng)使用==null來(lái)判斷是否為空,例如在Servlet中的session判斷用戶是否登錄可以用如下的代碼

if (session.getAttribute("LoginUser")==null){

.............

}

但是如果是一個(gè)String類型的變量,或者某一個(gè)方法返回的是String類型的結(jié)果。其判斷為空的方式又不一樣了。需要使用String類中的equals方法。例如在JSP中獲取URL中的參數(shù),為保險(xiǎn)起見(jiàn),可以先判斷這個(gè)參數(shù)是否為空,不空再獲取。如果直接獲取,一旦這個(gè)參數(shù)沒(méi)有, 會(huì)造成空指向異常。代碼如下

if (request.getParameter("id").toString().equals(null)){

out.println("未提供參數(shù)");

}else{

String id=request.getParameter("id").toString();

out.println(id);

}

假設(shè)頁(yè)面地址為

如果不加判斷 直接使用

String id=request.getParameter("id").toString();

out.println(id);

會(huì)造成空指向異常,而使用了判斷后,這種情況下不報(bào)錯(cuò),在頁(yè)面上顯示“未提供參數(shù)”。如果地址欄輸入的是

則頁(yè)面輸出“123”

另外在字符串的“空”驗(yàn)證時(shí)還要注意一種情況,那就是“”空。

如果假想Java中有指針的概念的話,String a為null空,則表示變量沒(méi)有指針去映射它;而String a為“”空,則表示該字符串有指針映射,但是映射到的內(nèi)容為空。

本文題目:java項(xiàng)目存在判空代碼 java實(shí)體類判空
文章轉(zhuǎn)載:http://www.rwnh.cn/article34/doohdse.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供Google定制網(wǎng)站、網(wǎng)站策劃、網(wǎng)站維護(hù)網(wǎng)站收錄、App設(shè)計(jì)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

手機(jī)網(wǎng)站建設(shè)
宜州市| 恭城| 集安市| 汕尾市| 清远市| 西乌| 新乡县| 香港| 资溪县| 湘西| 博白县| 长春市| 上林县| 宜黄县| 金塔县| 寻甸| 忻州市| 井研县| 潮州市| 连城县| 靖远县| 铁岭市| 穆棱市| 丰顺县| 平利县| 天水市| 昌吉市| 莱州市| 若羌县| 大方县| 丰县| 平谷区| 镇原县| 梨树县| 开鲁县| 广宗县| 邵阳市| 涟源市| 宝清县| 临城县| 乡城县|