我做一個條件與一個值時,它是空的,當它不爲空。 這個值爲空的時間我得到了java.lang.NullPointerException
。java.lang.NullPointerException
我怎麼能解決這個問題,以消除這個例外。 我需要條件時,值爲空,當它不是。
感謝您的幫助。
我做一個條件與一個值時,它是空的,當它不爲空。 這個值爲空的時間我得到了java.lang.NullPointerException
。java.lang.NullPointerException
我怎麼能解決這個問題,以消除這個例外。 我需要條件時,值爲空,當它不是。
感謝您的幫助。
當您嘗試使用null
變量調用方法時,您會得到一個NullPointerException
。簡單的例子:
String s = null;
int len = s.length(); // NullPointerException because s is null
所以,你應該檢查變量null
調用它的任何方法,例如前:
int len;
if (s == null) {
len = 0;
}
else {
len = s.length(); // safe, s is never null when you get here
}
注意,一個NullPointerException
通常很容易解決。仔細查看異常的堆棧跟蹤,它會準確告訴您代碼的哪一行發生異常。檢查該代碼行中可能是null
,並檢查是否在調用可能爲null
的某個方法。添加一張支票(或者以其他方式防止相關的東西可能是null
)。
只需進行適當的檢查,其值爲null
。有條件如
if (value == null)
將不會拋出一個空 Refe PointerException。只有當您嘗試訪問任何null
參考點才能獲得例外。所以調用方法或訪問對象的其他實例成員是沒有問題的。
確實混淆了這個問題,但是:
boolean isNull = true; if(value!= null){isNull = false;}
使用IF檢查變量不爲空,然後在ELSE代碼塊爲空時使用ELSE代碼塊。
if (variable != null)
{
//code when object is not null
}
else
{
//code when object is null
}
空指針只有throwh當您嘗試使用空值
如
variable.method();
但你應該總是避免在可能發生空指針的情況
+1雖然我對最後一句話不滿意。有時我們從API調用中獲得'null'或者想要存儲來自數據庫查詢的'NULL'結果。所以這並不總是可以避免的。 – 2010-06-01 14:36:20
正如其他海報所述,如果您不希望此處的引用爲空,請修復導致引用在第一個引用中爲空的缺陷。但是,如果它是有效的參考可能是零,也可以做到使用三元運算符(Java 5中的)以下
int len = (s == null) ? 0 : s.length;
注:括號內是可選的,但讓它在更多的可讀性我意見。
發佈您的代碼。 – 2010-06-01 14:14:52
[什麼是空指針異常,以及如何修復它?](http:// stackoverflow。com/questions/218384/what-is-null-pointer-exception-and-how-do-i-fix-it) – 2015-02-21 23:56:34