Einführung
Generische Arrays, bei denen die Array-Elemente ein gemeinsames haben Gemeinsame Typparameter stellen in Java aufgrund des Zusammenspiels zwischen Generika und dem kovarianten Verhalten von Arrays eine einzigartige Herausforderung dar.
Frage
Können wir ein Array von Generika erstellen, bei dem die generischer Typ erweitert Vergleichbar? Versuche, ein Objekt-Array in ein generisches Array umzuwandeln, das Comparable erweitert, stoßen auf Probleme und werfen die folgende Frage auf: Gibt es eine Problemumgehung?
Antwort
Generika und Arrays: Ein Kompatibilitätsrätsel
Generika und Arrays haben grundsätzlich unterschiedliche Arten, mit Typen umzugehen:
Aufgrund dieser Nichtübereinstimmung wird ein Array von Generika erstellt Typen, die eine bestimmte Klasse erweitern, sind nicht möglich.
Array.newInstance(): Eine Problemumgehung
Eine mögliche Lösung ist die Verwendung der Methode Array.newInstance():
<code class="java">private Comparable[] hashtable; ... hashtable = (Comparable[])Array.newInstance(Comparable.class, tableSize);</code>
Mit diesem Ansatz können Sie ein Array des Supertyps des generischen Typs erstellen (in diesem Fall vergleichbar), aber es ist wichtig zu beachten, dass dieses Array nicht vom gewünschten generischen Typ ist.
Warum nicht Arrays mit Generika verwenden?
Obwohl es Problemumgehungen gibt, wird von der Verwendung von Arrays mit Generika im Allgemeinen aus folgenden Gründen abgeraten:
Alternative: ArrayList
Eine geeignetere Option ist die Verwendung von ArrayList , das eine effiziente und typsichere Möglichkeit zum Verwalten von Sammlungen generischer Objekte bietet. ArrayLists bieten die Flexibilität von Generika und vermeiden die potenziellen Fallstricke, die mit Arrays und Generika verbunden sind.
Das obige ist der detaillierte Inhalt vonKönnen wir in Java generische Arrays erstellen, die vergleichbar sind?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!