java.lang.NullPointerException出現原因及解決方法java.lang.NullPointerException解決方法
阿新 • • 發佈:2020-07-27
java.lang.NullPointerException出現的幾種原因
1、字串變數未初始化 2、介面型別的物件沒有用具體的類初始化,比如: Map map // 會報錯 Map map = new Map(); //則不會報錯了 3、當一個物件的值為空時,你沒有判斷為空的情況。 4、字串與文字的比較,文字可以是一個字串或Enum的元素,如下會出現異常 String str = null; if(str.equals(“Test”)){ //這裡的程式碼將不會被觸發,因為會丟擲java.lang.NullPointerException異常。 } 5、優先使用String.valueOf()方法代替toString() 當程式程式碼需要物件的字串表示形式時,請避免使用該物件的toString方法。如果你的物件的引用等於null,NullPointerException則會丟擲,使用靜態String.valueOf方法,該方法不會丟擲任何異常並列印"null" 6、class被聲明瞭型別, 預設 class = null; 這樣在呼叫class中方法的時候系統只能給你個空指標異常, 給其例項化就好了:class = new Class(); 7、返回null,方法的返回值不要定義成為一般的型別,而是用陣列。這樣如果想要返回null的時候就能避免許多不必要的NullPointerException
總之,NullPointerException由RuntimeException派生出來,是一個執行時異常。其意指可能會在執行的時候才會被丟擲,一個變數是null,及只有其名,沒有實值內容,也沒分配記憶體,當你要去取他的長度,對他進行操作就會出現NullPointException,所以宣告變數時最好給它分配好記憶體空間,給予賦值,例如拿該變數與一個值比較時,要麼先做好該異常的處理要麼給它進行判斷先: if (str !=null && str “”){ …}
下圖為異常分佈圖: