JAVA中空指針異常報錯的幾種可能坑你的情況


 一、局部變量覆蓋掉其他變量導致無法使用。

  在做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();對其進行開辟空間之后才可以操作。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM