Arrays.asList() und primitive Arrays
Beim Versuch, ein Array primitiver Daten mithilfe von Arrays.asList( )-Methode kann es zu Inkonsistenzen kommen. In diesem Artikel wird das Problem untersucht und Lösungen bereitgestellt.
Problemerklärung
Die Methode Arrays.asList() akzeptiert variable Argumente, die ein Array darstellen. Im Gegensatz zu Referenztypen wie Integer[] werden jedoch keine primitiven Datentypen wie int[] unterstützt. Als Ergebnis lieferte das zweite Beispiel Folgendes:
int[] ints = new int[] {1,2,3,4,5}; List<Integer> list = Arrays.asList(ints);
gibt eine Liste
Autoboxing
Autoboxing, das primitive Datentypen in ihre Wrapper-Gegenstücke konvertiert, gilt nicht für Arrays von Primitiven. Daher wird das int[]-Array nicht automatisch in ein Integer[]-Array konvertiert.
Lösung
Um dieses Problem zu lösen, kann man Bibliotheken von Drittanbietern nutzen, z als Guavas com.google.common.primitive.Ints.asList-Methode. Es erstellt eine Liste von Werten in Boxen aus einem primitiven Array. Alternativ kann man manuell ein Integer[]-Array erstellen und Werte aus dem int[]-Array zuweisen, d. h.
int[] ints = new int[] {1,2,3,4,5}; Integer[] integers = new Integer[ints.length]; for (int i = 0; i < ints.length; i++) { integers[i] = ints[i]; } List<Integer> list = Arrays.asList(integers);
Das obige ist der detaillierte Inhalt vonWarum funktioniert Arrays.asList() nicht mit primitiven Arrays?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!