Heim > Java > javaLernprogramm > Warum führt „Arrays.asList()' in Java keine Autobox für primitive Arrays durch?

Warum führt „Arrays.asList()' in Java keine Autobox für primitive Arrays durch?

Mary-Kate Olsen
Freigeben: 2024-12-28 16:06:11
Original
433 Leute haben es durchsucht

Why Doesn't `Arrays.asList()` Autobox Primitive Arrays in Java?

Arrays.asList()-Rätsel: Seine Einschränkungen verstehen

In Java bietet die Methode Arrays.asList eine praktische Möglichkeit, ein Array zu konvertieren in eine Liste eintragen. Beim Umgang mit primitiven Arrays wie float[] stoßen wir jedoch auf eine Anomalie.

Dieses Code-Snippet funktioniert wie erwartet und erstellt eine Liste von Integer-Objekten:

On the Andererseits kann der folgende Code keine List erstellen:

Stattdessen ist die Ausgabe eine List, was auf eine Diskrepanz im Verhalten von Arrays.asList mit primitiven Arrays hinweist.

  • Warum passiert das?

Arrays.asList akzeptiert einen varargs-Parameter, der eine syntaktische Abkürzung für ein Array ist. Im Fall von Grundelementen wird jedoch das gesamte Array als einzelnes Element und nicht jeder Grundelementwert behandelt. Dies führt zu einer Liste, die ein Array von Grundelementen enthält, und nicht einzelne Grundwerte, die als Objekte verpackt sind.

  • Kann das korrigiert werden?

Leider , gibt es keine einfache Möglichkeit, ein int[] in List umzuwandeln. mit Arrays.asList. Um dies zu erreichen, muss man auf externe Bibliotheken oder benutzerdefinierten Code zurückgreifen.

  • Warum funktioniert Autoboxing hier nicht?

Autoboxing konvertiert normalerweise Grundelemente in ihre entsprechenden Wrapper-Objekte zur Verwendung in Objektsammlungen. Bei der Anwendung auf Arrays von Grundelementen erfolgt dies jedoch nicht elementweise. Diese Einschränkung ergibt sich aus der Tatsache, dass Array-Autoboxing in Java nicht unterstützt wird.

Das obige ist der detaillierte Inhalt vonWarum führt „Arrays.asList()' in Java keine Autobox für primitive Arrays durch?. 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