主要有以下幾種原因:
1、使用了未初始化的變量(雖然已經(jīng)聲明)
2、使用了未初始化的對象(雖然已經(jīng)聲明)
3,使用了關(guān)鍵字或已存在的類名作變量對象方法或類名。
一般報java.lang.NullPointerException的原因有以下幾種:
·字符串變量未初始化;
·接口類型的對象沒有用具體的類初始化,比如:
List lt;會報錯
List lt = new ArrayList();則不會報錯了
·當一個對象的值為空時,你沒有判斷為空的情況。
你可以試著把下面的代碼前加一行代碼:
if(rb!=null && rb!="")
改成:
if(rb==null);
if(rb!==null&&rb!="")
解決步驟:
1、打開Console面板,找到出錯信息。
2、從打印出來的信息中找出一個文件及其出錯行數(shù)。
3、在出錯行處設(shè)置斷點,重新執(zhí)行程序。
4、打開Variables視圖,從中查找出錯行所用到的所有對象及其值,如果其中對象的值為空,則可以進一步分析問題。
5、如果該行的對象都不為空而是調(diào)用了一個函數(shù),則到這個函數(shù)里設(shè)置斷點(或step into F5 ),繼續(xù)進行調(diào)試。這時需要用F6(執(zhí)行一行),直到再次報錯,從而定位到出錯處。重復(fù)步驟4.
6、結(jié)束。
如果不會斷點,教你個狠的,你把用到的變量都輸出出來,就知道誰是NULL了,然后在想辦法改正,就簡單多了
本文來自CSDN博客,轉(zhuǎn)載請標明出處:http://blog.csdn.net/aisitemasu/archive/2008/05/29/2493246.aspx