Heim > Java > javaLernprogramm > Warum löst „toArray()' in Java beim Konvertieren in ein String-Array eine „ClassCastException' aus?

Warum löst „toArray()' in Java beim Konvertieren in ein String-Array eine „ClassCastException' aus?

DDD
Freigeben: 2024-10-27 07:31:03
Original
852 Leute haben es durchsucht

Why does `toArray()` in Java Throw a `ClassCastException` when Converting to a String Array?

String[] toArray() in Java löst ClassCastException aus

Beim Versuch, (String[])List.toArray() in Java zu verwenden , können Benutzer auf eine ClassCastException stoßen. Dies liegt daran, dass die toArray()-Methode ein Objekt[] zurückgibt, das nicht direkt in einen String[] umgewandelt werden kann, selbst wenn der Inhalt Zeichenfolgen ist.

Die Verwirrung rührt von der Tatsache her, dass der Java-Compiler vor dem Kompilieren , führt eine Typlöschung für generische Typen durch. Das bedeutet, dass zur Laufzeit ein List wird als Liste ohne Typinformationen dargestellt. Folglich hat die toArray()-Methode keine Kenntnis über den zugrunde liegenden Datentyp, was dazu führt, dass ein Object[] zurückgegeben wird.

Um die Ausnahme zu vermeiden, sollten Entwickler den gewünschten Array-Typ explizit angeben. Dies kann mit der folgenden Syntax erfolgen:

<code class="java">String[] v3 = (String[])v2.toArray(new String[v2.size()]);</code>
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWarum löst „toArray()' in Java beim Konvertieren in ein String-Array eine „ClassCastException' aus?. 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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage