Heim > Java > javaLernprogramm > Warum verursacht das Erstellen eines Arrays generischer Listen in Java einen Compilerfehler?

Warum verursacht das Erstellen eines Arrays generischer Listen in Java einen Compilerfehler?

Barbara Streisand
Freigeben: 2024-11-03 23:16:31
Original
654 Leute haben es durchsucht

Why Does Creating an Array of Generic Lists in Java Cause a Compiler Error?

Arrays generischer Listen

In Java kann die Verwendung von Generika und Arrays eine Herausforderung darstellen. Während bestimmte Konstruktionen gültig erscheinen, kann der Compiler Einwände erheben.

Betrachten Sie das folgende Beispiel:

<code class="java">ArrayList<Key> a = new ArrayList<Key>(); // Compiles without issue</code>
Nach dem Login kopieren

Beim Versuch, ein Array generischer Listen zu erstellen:

<code class="java">ArrayList<Key>[] a = new ArrayList<Key>[10]; // Compiler error</code>
Nach dem Login kopieren

Dieser Fehler entsteht durch Typlöschung. Um das Problem zu lösen, kann man das Array entweder wie folgt umwandeln:

<code class="java">ArrayList<Key>[] a = (ArrayList<Key>[]) new ArrayList[10];</code>
Nach dem Login kopieren

Oder eine Liste von Listen verwenden:

<code class="java">ArrayList<ArrayList<Key>> b = new ArrayList<ArrayList<Key>>(); // No error</code>
Nach dem Login kopieren

Um die Gründe für diese Beobachtungen zu verstehen, ist es wichtig, sie zu verstehen Javas Typlöschmechanismus. Während der Kompilierung werden die Typinformationen für generische Typen gelöscht, sodass sie als ihre rohen Gegenstücke behandelt werden. Dies liegt daran, dass Arrays nur mit Rohtypen funktionieren können.

Im ersten Beispiel ist ArrayList wird in ArrayList gelöscht, was ein gültiger Rohtyp ist. Im zweiten Beispiel stößt der Compiler jedoch auf einen unzulässigen Rohtyp ArrayList[]. Die verwendete Umwandlung stellt sicher, dass der Komponententyp des resultierenden Arrays mit dem definierten Typ übereinstimmt.

Der Listen-Listen-Ansatz beseitigt diese Probleme, da ArrayList kein Array ist und daher nicht denselben Einschränkungen unterliegt.

Das obige ist der detaillierte Inhalt vonWarum verursacht das Erstellen eines Arrays generischer Listen in Java einen Compilerfehler?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage