LinkedList-Array kann in Java nicht instanziiert werden
In diesem Thread stößt der Entwickler beim Versuch, ein Array von LinkedLists in Java zu erstellen, auf eine Herausforderung um Werte in einer dünn besetzten Matrix zu speichern. Die Fehlermeldung „Es kann kein generisches Array von LinkedList
Was ist die Hauptursache für diesen Fehler?
Die Hauptursache liegt in Javas Einschränkung gegen die Erstellung generischer Arrays von nicht-primitive Typen. Generics sind typsichere Mechanismen, die in Java 5 eingeführt wurden, um ClassCastException zur Laufzeit zu verhindern. Beim Deklarieren eines Arrays generischer Typen wie LinkedList
Warum Ist der Typ in der Array-Deklaration akzeptabel, aber nicht in der Erstellung?
Die Array-Deklaration verwendet einen Rohtyp, LinkedList[], der den generischen Typparameter nicht angibt. Rohtypen sind untypisiert und erzwingen keine Typsicherheit. Beim Instanziieren des Arrays benötigt der Compiler jedoch die Bereitstellung eines bestimmten Typparameters, bei dem der Fehler auftritt.
Lösung:
Um dieses Problem zu beheben, muss eine Typumwandlung durchgeführt werden. Der korrigierte Code sollte wie folgt aussehen:
myMatrix = (LinkedList<IntegerNode>[]) new LinkedList<?>[numRows];
Die Umwandlung (LinkedList
Das obige ist der detaillierte Inhalt vonWarum kann ich in Java kein Array von LinkedLists erstellen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!