當前位置:首頁 » 編程語言 » java對象為空

java對象為空

發布時間: 2022-12-27 16:30:52

A. java對象數組為空

new關鍵字表示創建了對象,所以單獨new 一個輸出的不是null。
Nodes[] background = new Nodes[2];,你new的是一個數組,
所以列印background不是null。但是數組裡面的元素,background[1]你還沒有new出來,
所以沒有對象,也就是null了。

B. java怎麼判斷一個對象是否為空

StringUtils.isEmpty(對象);//返回true/false

C. java 怎樣判斷一個對象是否為空

Item item = new Item();這個對象肯定是為空的
錯了,這個對象已經分配了內存,不是空的,用System.out.println(item)列印就知道已經存在地址,如果是空,列印null;

判斷一個對象是否為空,就是按那個條件判斷,沒有錯,System.out.println();是控制台比較實用的調試,測試方法

D. java判斷對象是否為空

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;
}

E. java 中空對象是什麼概念

所謂空對象就是指向NULL的,即未分配堆內存的,也就是沒有new的。
例如
class A{。。。}
A a;
a==null?true:false//為true。
A a=new A();
a==null?true:false//為false。

F. java中怎麼判斷一個對象是不是為空

這樣寫是存在問題的,如果pb為空,pb.equals(null))會出現空指針異常.
if(null == pb)
System.out.println("為空");
else
System.out.println("不為空");

G. java怎麼判斷對象為null

public static void main(String[] args) {
//person是對象newPerson的引用
Person person = new Person();
//判斷是否為空
if(person==null){
//如果為空 列印對象為空
System.out.println("對象為空");
}else{
//如果為不為空 列印person
System.out.println("對象為"+person);
}
}

H. java對象為空的判斷

/**
*判斷對象或對象數組中每一個對象是否為空:對象為null,字元序列長度為0,集合類、Map為empty
*
*@paramobj
*@return
*/
(Objectobj){
if(obj==null)
returntrue;

if(objinstanceofCharSequence)
return((CharSequence)obj).length()==0;

if(objinstanceofCollection)
return((Collection)obj).isEmpty();

if(objinstanceofMap)
return((Map)obj).isEmpty();

if(objinstanceofObject[]){
Object[]object=(Object[])obj;
if(object.length==0){
returntrue;
}
booleanempty=true;
for(inti=0;i<object.length;i++){
if(!isNullOrEmpty(object[i])){
empty=false;
break;
}
}
returnempty;
}
returnfalse;
}
應用場景:
讀取excel文件,轉化為一個二維數組:Object[][]arrays
但是excel中有空行,所以需要過濾Object[][]arrays中的空的一維數組:
Java代碼
/***
*過濾數組中的空元素
*
*
*@paramarrays
*@return
*/
publicstaticObject[][]filterEmpty(Object[][]arrays){
intsumNotNull=0;
/***
*統計非空元素的總個數
*/
for(inti=0;i<arrays.length;i++){
Objectobject=arrays[i];
if(!ValueWidget.isNullOrEmpty(object)
&&!SystemUtil.isNullOrEmpty((Object[])object)){//判斷元素是否為空
sumNotNull=sumNotNull+1;
}
}
Object[][]filtedObjs=newObject[sumNotNull][];
intindex=0;
for(inti=0;i<arrays.length;i++){
Object[]object_tmp=arrays[i];
if(!ValueWidget.isNullOrEmpty(object_tmp)
&&!SystemUtil.isNullOrEmpty((Object[])object_tmp)){//判斷元素是否為空
filtedObjs[index++]=object_tmp;
}
}
returnfiltedObjs;
}
判斷對象的所有成員變數是否為空
Java代碼
/***
*Determinewhethertheobject'sfieldsareempty
*
*@paramobj
*@paramisExcludeZero:true:數值類型的值為0,則當做為空;----false:數值類型的值為0,則不為空
*
*@return
*@throwsSecurityException
*@
*@throwsNoSuchFieldException
*@throwsIllegalAccessException
*/
(Objectobj,booleanisExcludeZero)
throwsSecurityException,IllegalArgumentException,
NoSuchFieldException,IllegalAccessException{
if(ValueWidget.isNullOrEmpty(obj)){//對象本身就為null
returntrue;
}
List<Field>fieldList=ReflectHWUtils.getAllFieldList(obj.getClass());
booleanisNull=true;
for(inti=0;i<fieldList.size();i++){
Fieldf=fieldList.get(i);
ObjectpropertyValue=null;
try{
propertyValue=getObjectValue(obj,f);
}catch(NoSuchFieldExceptione){
e.printStackTrace();
}

if(!ValueWidget.isNullOrEmpty(propertyValue)){//欄位不為空
if(){//是數字
if(!((Integer)propertyValue==0&&isExcludeZero)){
isNull=false;
break;
}
}elseif(propertyValueinstanceofDouble){//是數字
if(!((Double)propertyValue==0&&isExcludeZero)){
isNull=false;
break;
}
}elseif(propertyValueinstanceofFloat){//是數字
if(!((Float)propertyValue==0&&isExcludeZero)){
isNull=false;
break;
}
}elseif(propertyValueinstanceofShort){//是數字
if(!((Short)propertyValue==0&&isExcludeZero)){
isNull=false;
break;
}
}else{
isNull=false;
break;
}
}
}
returnisNull;
}
測試:
Java代碼
@Test
publicvoidtest_isNullObject()throwsSecurityException,
IllegalArgumentException,NoSuchFieldException,
IllegalAccessException{
Person2p=newPerson2();
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代碼
importjava.sql.Timestamp;

publicclassPerson2{
privateintid;
privateintage;
privatedoubleweight;
privateStringpersonName;
privateTimestampbirthdate;
publicStringidentitify;
protectedStringaddress;
Stringphone;

}

I. Java中判斷對象為空的問題

  • 首先來看一下工具StringUtils的判斷方法:
    一種是org.apache.commons.lang3包下的;
    另一種是org.springframework.util包下的。這兩種StringUtils工具類判斷對象是否為空是有差距的:

    StringUtils.isEmpty(CharSequence cs); //org.apache.commons.lang3包下的StringUtils類,判斷是否為空的方法參數是字元序列類,也就是String類型StringUtils.isEmpty(Object str); //而org.springframework.util包下的參數是Object類,也就是不僅僅能判斷String類型,還能判斷其他類型,比如Long等類型。12345

  • 從上面的例子可以看出第二種的StringUtils類更實用。

    下面來看一下org.apache.commons.lang3的StringUtils.isEmpty(CharSequence cs)源碼:public static boolean isEmpty(final CharSequence cs) { return cs == null || cs.length() == 0;



    接下來是org.springframework.util的StringUtils.isEmpty(Object str)源碼:public static boolean isEmpty(Object str) { return (str == null || "".equals(str));



    基本上判斷對象是否為空,StringUtils.isEmpty(Object str)這個方法都能搞定。

    接下來就是判斷數組是否為空

    list.isEmpty(); //返回boolean類型。


熱點內容
內置存儲卡可以拆嗎 發布:2025-05-18 04:16:35 瀏覽:336
編譯原理課時設置 發布:2025-05-18 04:13:28 瀏覽:378
linux中進入ip地址伺服器 發布:2025-05-18 04:11:21 瀏覽:612
java用什麼軟體寫 發布:2025-05-18 03:56:19 瀏覽:32
linux配置vim編譯c 發布:2025-05-18 03:55:07 瀏覽:107
砸百鬼腳本 發布:2025-05-18 03:53:34 瀏覽:944
安卓手機如何拍視頻和蘋果一樣 發布:2025-05-18 03:40:47 瀏覽:741
為什麼安卓手機連不上蘋果7熱點 發布:2025-05-18 03:40:13 瀏覽:803
網卡訪問 發布:2025-05-18 03:35:04 瀏覽:511
接收和發送伺服器地址 發布:2025-05-18 03:33:48 瀏覽:372