首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計疑難解答

Android SQLite 空指針異常:dataList 未初始化導致崩潰

     編輯:程式設計疑難解答

錯誤現象

在 Android APP 開發中使用 SQLite 時,若直接對未初始化的 ArrayList 進行操作(如傳遞給 Adapter),會拋出 NullPointerException,導致應用崩潰。

典型錯誤代碼

// 錯誤示範
ArrayList<String> dataList;  // 僅宣告,未初始化
// ... 查詢資料庫 ...
ArrayAdapter<String> adapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, dataList); // 此處拋出 NPE

解決方案

在 new ArrayAdapter 之前,務必先實例化 dataList:

// 正確寫法
ArrayList<String> dataList = new ArrayList<>(); // 關鍵:初始化
// ... 查詢資料庫並 add 進 dataList ...
ArrayAdapter<String> adapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, dataList);

最佳實踐建議

  • 宣告成員變量時直接初始化:private List<String> dataList = new ArrayList<>();
  • 使用 Objects.requireNonNull() 或 Kotlin 的非空類型機制在編譯期攔截風險。
  • 資料庫查詢結果為空時,仍保持 List 為空集合而非 null,避免下游判空邏輯疏漏。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved