Heim >Java >javaLernprogramm >Warum verhält sich Arrays.asList() bei primitiven Arrays in Java schlecht?

Warum verhält sich Arrays.asList() bei primitiven Arrays in Java schlecht?

Susan Sarandon
Susan SarandonOriginal
2024-12-20 01:13:08779Durchsuche

Why Does Arrays.asList() Misbehave with Primitive Arrays in Java?

Warum Arrays.asList() bei Primitiven schwierig sein kann

Mit der Arrays.asList()-Methode von Java können Sie ein Array in ein konvertieren Liste. Bei primitiven Arrays kann es jedoch zu unerwartetem Verhalten kommen.

Frage: Warum gibt Arrays.asList(int[]) ein List zurück? statt List?

Antwort: Java-Generika unterstützen keine primitiven Typen. Stattdessen verwenden sie ihre Wrapper-Klassen (z. B. Integer, Float). Arrays.asList() gibt eine Liste vom genau gleichen Typ wie das übergebene Array zurück. Da int[] ein Array von int ist, ist das Ergebnis List.

Frage: Gibt es eine Möglichkeit, ein int[] in ein List

Antwort: Nein, es gibt keine direkte Möglichkeit, ein int[] in a umzuwandeln Liste mit Arrays.asList().

Frage: Warum funktioniert Autoboxing in diesem Fall nicht?

Antwort: Autoboxing tritt nur für Einzelpersonen auf Primitivwerte, nicht für Arrays von Primitiven. Daher können int[] ints nicht automatisch in Integer[] konvertiert werden.

Lösung:

Um eine List Aus einem Array von Grundelementen können Sie Bibliotheken von Drittanbietern verwenden, die zusätzliche Funktionen bereitstellen, z. B. die Methode com.google.common.primitive.Ints.asList() von Guava. Diese Methode erstellt explizit einen Listen-Wrapper um das int[]-Array, in dem jedes Element als Integer-Array eingerahmt wird.

Alternativ können Sie Arrays.asList verwenden, wenn Sie mit einem Integer[]-Array beginnen können () direkt so, als würde eine List zurückgegeben werden.

Das obige ist der detaillierte Inhalt vonWarum verhält sich Arrays.asList() bei primitiven Arrays in Java schlecht?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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