一、局部變量覆蓋掉其他變量導致無法使用。
在做Java客戶管理的項目的時候,eclipse報出了個空指針異常的錯誤,但反復檢查也並沒感覺出錯誤,調用的數組給它初始化而且賦值了,但是編譯器很頑強的報了一個空指針異常的錯誤,經過反復排查發現,自己是在那個方法的構造函數對其進行初始化的時候寫了這么一句:
customers[ ] customers = new Customer[totalCustomer];
這句話相當於創建了一個customers對象customers,而這個對象customers與該方法的屬性customers同名,屬於一種獨立的關系,而在本方法的其他地方調用customers的時候發現開發者並沒有對該類的屬性customers賦值,仍然屬於一種null的狀態。所以在本類的其他地方調用customers數組的時候就會報出空指針異常的錯誤。
總結:
在網上查閱其他資料的時候發現空指針異常的很多報錯原因是因為String類的使用有誤,但是我在我的當時的代碼中並沒有使用String類,報錯的地方我當時以為以及給他賦值了,所以就尤其奇怪為什么會報出空指針異常的錯誤。排查發現自己在寫代碼的時候直接筆誤,相當於創建了個局部變量,而局部變量不會在方法結束的時候留下任何東西,這就造成了程序其他地方調用該數組的時候有了空指針異常的錯誤。
二、數組初始化卻未開辟空間
首先聲明了Employee[] empsInit = new Employee[11];
在后續使用時直接想用empsInit[0]來對其用set方法進行賦值,但是直接報出空指針異常錯誤,經排查發現,應當先new Employee();對其進行開辟空間之后才可以操作。