Behebung des Fehlers beim Erstellen eines Arrays von LinkedLists
In Java ist es nicht möglich, ein generisches Array von LinkedLists direkt zu erstellen. Dies ist auf eine Einschränkung der Java-Sprache zurückzuführen, die als „Generics Erasure“ bekannt ist. Beim Kompilieren von Java-Code löscht der Compiler Typinformationen für generische Typen wie LinkedList. Daher sieht die Java Virtual Machine (JVM) beim Ausführen des Codes nur Rohtypen wie LinkedList.
Problem lösen
Um dieses Problem zu beheben, können Sie Folgendes tun Wandeln Sie den Typ um und machen Sie die Deklaration wie folgt:
<code class="java">myMatrix = (LinkedList<IntegerNode>[]) new LinkedList<?>[numRows];</code>
Indem Sie das Array in einen bestimmten Typ umwandeln, teilen Sie dem Compiler explizit mit, dass es sich um ein Array von LinkedLists mit IntegerNode-Objekten handeln soll. Das Platzhalterzeichen (?) in der Deklaration gibt an, dass der spezifische Typ der Elemente im LinkedList-Array irrelevant ist, solange es sich um Objekte eines beliebigen Typs handelt.
Erklärung der Deklarationskompatibilität
Die Deklaration von LinkedList
Das obige ist der detaillierte Inhalt vonHier sind einige Titel im Fragestil, die auf Ihrem Artikel basieren: * Warum kann ich in Java kein generisches Array von LinkedLists erstellen? * So überwinden Sie das Löschen von Generics und erstellen ein Array von LinkedLists in Java. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!