首頁  >  文章  >  Java  >  為什麼我無法在 Java 中建立 LinkedList 陣列?

為什麼我無法在 Java 中建立 LinkedList 陣列?

Susan Sarandon
Susan Sarandon原創
2024-10-27 01:42:03913瀏覽

Why Can't I Create an Array of LinkedLists in Java?

無法在Java 中實例化LinkedList 數組

在此主題中,開發人員在嘗試用Java 創建LinkedList 數組時遇到了挑戰將值儲存在稀疏矩陣中。錯誤訊息「無法建立 LinkedList 的通用陣列」提示兩個關鍵問題:

  1. 此錯誤的根本原因是什麼?

    根本原因在於 Java 對建立泛型陣列的限制非原始型別。泛型是 Java 5 中引入的類型安全機制,用於防止運行時 ClassCastException。當宣告泛型類型陣列時,例如 LinkedList,編譯器需要明確型別轉換,以使 Java 知道所建立的陣列的特定類型。

  2. 為什麼該類型在陣列聲明中可接受,但在創建時不可接受?

    陣列宣告使用原始型別 LinkedList[],它不指定泛型型別參數。原始類型是無類型的,且不強制類型安全。然而,在實例化數組時,編譯器要求提供特定的類型參數,這就是錯誤發生的地方。

解決方案:

要解決此問題,必須執行型別轉換。修正後的程式碼應如下所示:

myMatrix = (LinkedList<IntegerNode>[]) new LinkedList<?>[numRows];

強制轉換 (LinkedList[]) 明確通知編譯器正在建立的陣列是包含 IntegerNode 元素的 LinkedList 陣列。這允許通用數組被正確實例化。

以上是為什麼我無法在 Java 中建立 LinkedList 陣列?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn