關於空指標異常問題

2022-05-26 23:03:08 字數 567 閱讀 5184

一直都覺得空指標異常很好改,但是今天竟然調了一上午,鬱悶吶,因此開始總結教訓:

首先svo是前端所傳的物件,判斷是否為空,如果為空則進行例項化

if (svo == null)
string project_num = svo.getprojectnum();
if (project_num.equals(root_node) || strings.isnullorempty(project_num)) 

本來我認為這樣寫是沒有問題的,但是加斷點走到if語句就一直報空指標異常,後來才發現if裡的判斷條件寫反了,而且null是沒有equals的,當然會報空指標異常,

也就是說當project_num的值為null時,由於null不存在equals(),因此直接報異常,正確的判斷如下

if (strings.isnullorempty(project_num) || project_num.equals(root_node))
其他的空指標異常大多就是沒加判斷是否為空或為null,或者是物件沒有例項化

希望以後不會再犯迷糊

空指標異常的問題

空指標異常 這個異常屬於 runtimeexception 的子類,所以編譯的時候感覺沒啥問題,一執行崩潰了。為啥會出現這個異常,下面是我的個人理解。原因 當乙個物件不存在 即物件 null 時,呼叫方法或者變數會出現空指標異常。具體原因是,當物件為null時,堆記憶體存放物件屬性為空,而使用方法時...

空指標異常記錄

空指標異常是指 當應用程式試圖在需要物件的地方使用 null 時,丟擲該異常。也就是你沒有建立這個物件,你卻呼叫他,或者呼叫他的方法,或者訪問 修改他的屬性,這時會丟擲乙個空指標異常。我這兩天遇到的問題是,我傳入乙個為null的屬性,或者沒有傳入必要屬性,就會在return的地方報乙個空指標異常。注...

Android context空指標異常

fragment中的 context 是null public class placeholderfragment extends fragment 這樣定義的context是null。當然咯,我實際 不是這樣寫的,可是這個意思。假設是在activity中就不會是空。在fragment中就是null...