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

Java 中正確定義 ArrayList> 陣列的語法

     編輯:程式設計綜合問答

問題現象

嘗試宣告一個固定長度的泛型陣列:

private static final ArrayList> tmp = new ArrayList>()[10];

編譯器報錯,無法通過編譯。

錯誤分析

  • Java 不支援泛型陣列的直接建立(new ArrayList>[10] 非法)。
  • 泛型資訊在執行期會被型別抹除,陣列需要知道確切的元件型別以執行型別檢查,兩者衝突。

正確寫法

改用陣列的陣列或集合:

方案一:使用 List 取代陣列(推薦)

private static final List> tmp = new ArrayList<>(10);

若需固定大小,可用 Collections.nCopies(10, new HashSet<>()) 初始化。

方案二:宣告為非泛型陣列再強制轉型(不推薦,會有未經檢查的警告)

private static final ArrayList>[] tmp = new ArrayList[10];

使用時需自行確保型別安全。

方案三:改用二維集合結構

private static final List>> tmp = new ArrayList<>();

總結

Java 禁止建立泛型陣列,請優先使用 List 或巢狀集合結構,程式碼更安全、可維護性更高。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved