各位大神,我已經(jīng)知道錯在構(gòu)造方法中多寫了一個Scanner,相當(dāng)于有定義了一個局部變量,我想這樣寫為什么錯了呢,
各位大神,15:40左右老師在講解自行輸入課程名稱查找是否重復(fù)的時候,
我已經(jīng)知道錯在構(gòu)造方法中在console前面多寫了一個Scanner,相當(dāng)于又定義了一個局部變量,我想問這樣寫為什么錯了呢???
當(dāng)我在SetTest類中創(chuàng)建了成員變量:private修飾的Scanner類型的屬性console
同時,我在SetTest有參構(gòu)造方法中又定義了一個局部變量:Scanner類型的console
會出現(xiàn)下面的異常情況:Exception in thread "main" java.lang.NullPointerException,第三個截圖.
2019-03-11
我第一個的靜態(tài)代碼塊寫的有問題 換成構(gòu)造代碼塊吧
2019-07-21
把第五行的Scanner去掉就可以了
2019-03-11
就這幾行代碼他就報運行錯誤了,真不知道為啥
2019-03-10
首先你問題不在你說的那塊代碼里,而且你那里這樣寫是沒問題的,但沒必要,因為看你的注釋大概是想說每次只創(chuàng)建出一個Scanner對象,還把Scanner抽出來了一個成員變量,但是實際上每次調(diào)用構(gòu)造依舊是在構(gòu)造里new的一個Scanner,那么你定義的這個就沒有用到啊 這里如果只想初始化一次,直接寫到靜態(tài)代碼塊就可以了,這樣只會跟著類加載的時候給初始化一次
接著說你下面的問題,首先是空指針異常,那么肯定是對象是空的,控制臺寫的很明白了120行,你這里沒截出來,大概是coursesToSelect這個對象是空的,空的調(diào)用contains方法肯定就出現(xiàn)空指針異常,然后繼續(xù)看上面一個報錯106行,testListContains方法,所以問題來源應(yīng)該就是這個方法里返回的時候,對象返回了null,打個斷點看一下應(yīng)該就可以了