Heim > Java > javaLernprogramm > Hauptteil

Warum führt die Umwandlung eines Objekt-Arrays in ein Integer-Array zu einer ClassCastException?

Patricia Arquette
Freigeben: 2024-10-27 13:03:01
Original
969 Leute haben es durchsucht

Why Does Casting an Object Array to an Integer Array Result in a ClassCastException?

Warum die Umwandlung vom Objekt-Array in das Ganzzahl-Array eine ClassCastException auslöst

Das folgende Code-Snippet stößt auf einen Fehler:

Object[] a = new Object[1];
Integer b=1;
a[0]=b;
Integer[] c = (Integer[]) a;
Nach dem Login kopieren

Der Fehler, „java.lang.ClassCastException: [Ljava.lang.Object; kann nicht in [Ljava.lang.Integer;“ umgewandelt werden;“ tritt in der letzten Zeile auf.

Grund:
Das Problem entsteht, weil Sie ein Array von Ganzzahlen nicht als Array von Objekten behandeln können. Während Integer[] ein Untertyp von Object[] ist, ist Object[] kein Untertyp von Integer[].

Daher führt der Versuch, ein Object[] in ein Integer[] umzuwandeln, zu einer ClassCastException.

Alternativer Code:
Um dieses Problem zu beheben, verwenden Sie eine der folgenden Methoden:

Integer[] integerArray = Arrays.copyOf(a, a.length, Integer[].class);
Integer[] integerArray = Arrays.copyOfRange(a, 0, a.length, Integer[].class);
Nach dem Login kopieren

Alternativ können Sie die ClassCastException verhindern, indem Sie sicherstellen, dass das Array Elemente sind alle vom Typ Integer, wie im folgenden korrekten Code:

Object[] a = new Integer[1];
Integer b=1;
a[0]=b;
Integer[] c = (Integer[]) a;
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWarum führt die Umwandlung eines Objekt-Arrays in ein Integer-Array zu einer ClassCastException?. 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
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!