首頁  >  文章  >  Java  >  為什麼我無法在 Java 中建立 LinkedList 陣列以及如何修復它?

為什麼我無法在 Java 中建立 LinkedList 陣列以及如何修復它?

Susan Sarandon
Susan Sarandon原創
2024-10-27 07:31:29908瀏覽

Why Can't I Create an Array of LinkedLists in Java and How Do I Fix It?

在 Java 中建立 LinkedList 陣列

在 Java 中,嘗試建立 LinkedList 陣列時會出現問題。當宣告像 private LinkedList[] myMatrix 這樣的陣列時,預計可以使用下列行來指派陣列:myMatrix = new LinkedList[numRows]。然而,此策略會導致錯誤,指出 LinkedList 的通用陣列無法建立。

這會引發兩個問題:

  1. 導致這種情況的錯誤是什麼?
  2. 為什麼在陣列宣告中允許使用 LinkedList 類型,如果它無法建立?

要注意的是,在這個場景中IntegerNode是一個使用者定義的類別。

解決方案

解決方案解決這個問題的方法是在聲明中轉換類型以允許創建數組。修改後的聲明應該是:

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

說明

在Java中,不直接支援泛型陣列。相反,使用原始類型(即沒有類型參數的類型)。類型轉換允許編譯器推斷數組的正確泛型類型。

因此,聲明中的類型 LinkedList[] 是允許的,即使它不能直接建立。這是因為編譯器將其視為原始類型,由程式設計師將其轉換為所需的特定泛型類型。

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

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