Generische Arrays in Java
Arrays und Generika stellen in Java eine Programmierhürde dar. Sie können ein Array parametrischer Typen nicht direkt erstellen. Dies liegt daran, dass Arrays kovariant sind, was bedeutet, dass sie den Typ ihrer Elemente zur Laufzeit beibehalten, während Generics die Typlöschung verwenden.
Eine Problemumgehung besteht darin, Array.newInstance() wie folgt zu verwenden:
private Comparable[] hashtable; ... hashtable = (Comparable[])Array.newInstance(Comparable.class, tableSize);
Es ist jedoch wichtig zu beachten, dass diese Lösung nicht ideal ist.
Warum nicht generische Arrays verwenden?
Um diese Probleme zu vermeiden, wird empfohlen, bei der Arbeit mit Generika eine ArrayList anstelle eines Arrays zu verwenden. ArrayLists sind kovariant und typsicher, was sie zu einer besseren Wahl für die Speicherung generischer Typen macht.
Eine ausführlichere Erklärung finden Sie in den FAQ zu Java Generics:
Kann ich ein Array erstellen, dessen Komponententyp ein konkreter parametrisierter Typ ist?
Nein, da es nicht typsicher ist.
Arrays sind kovariant, was bedeutet, dass ein Array von Supertyp-Referenzen ein Supertyp eines Arrays von Subtyp-Referenzen ist. Das heißt, Object[] ist ein Supertyp von String[] und auf ein String-Array kann über eine Referenzvariable vom Typ Object[] zugegriffen werden.
Das obige ist der detaillierte Inhalt vonWarum kann ich in Java keine generischen Arrays erstellen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!