首頁  >  文章  >  Java  >  以下是根據您的文章提出的一些問題式標題: * 為什麼我不能在 Java 中建立通用的 LinkedList 陣列? * 如何克服泛型擦除並在 Java 中建立 LinkedList 數組

以下是根據您的文章提出的一些問題式標題: * 為什麼我不能在 Java 中建立通用的 LinkedList 陣列? * 如何克服泛型擦除並在 Java 中建立 LinkedList 數組

DDD
DDD原創
2024-10-28 12:08:30301瀏覽

Here are a few question-style titles based on your article:

* Why Can't I Create a Generic Array of LinkedLists in Java?
* How to Overcome Generics Erasure and Create an Array of LinkedLists in Java
* Java's Limitation: Why Direct Creation of a Generic

解決建立 LinkedList 陣列時的錯誤

在 Java 中,無法直接建立通用的 LinkedList 陣列。這是由於 Java 語言的限制(稱為「泛型擦除」)所造成的。編譯 Java 程式碼時,編譯器會刪除 LinkedList 等泛型類型的型別資訊。因此,Java 虛擬機器 (JVM) 在執行程式碼時只能看到像 LinkedList 這樣的原始型別。

解決問題

要解決此問題,您可以轉換類型並進行以下聲明:

<code class="java">myMatrix = (LinkedList<IntegerNode>[]) new LinkedList<?>[numRows];</code>

透過將陣列轉換為特定類型,您明確告訴編譯器您打算將其作為包含IntegerNode 物件的LinkedList 陣列。聲明中的通配符 (?) 表示 LinkedList 陣列中元素的具體類型是無關緊要的,只要它們是任何類型的物件即可。

聲明相容性說明

LinkedList[] myMatrix 的聲明;與程式碼中的賦值語句相容,因為編譯器最初假定泛型類型參數是未知類型。雖然您無法直接實例化通用數組,但編譯器允許進行聲明以適應在運行時創建 LinkedList 數組的可能性。

以上是以下是根據您的文章提出的一些問題式標題: * 為什麼我不能在 Java 中建立通用的 LinkedList 陣列? * 如何克服泛型擦除並在 Java 中建立 LinkedList 數組的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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