Ich habe den folgenden Code, wo ich ein Array erstellen und versuchen, Objekte darin zu speichern. Zur Laufzeit erhalte ich ArrayStoreException
.
Ich verstehe irgendwie, dass dies wegen der Aussage
ist %Vor% Warum ist das falsch? A.getClass()
bei Laufzeit gibt String
zurück, also sollte temp
ein Array von Strings sein. Warum funktioniert die Zuweisung temp[i] = A[i]
in diesem Fall nicht?
Der Typ von A
ist java.lang.String[]
und nicht java.lang.String
.
Sie möchten den Komponententyp des Arrays und nicht den Array-Typ selbst.
Verwenden Sie stattdessen diese Zeile:
%Vor%und der Code läuft gut.
Versuchen Sie temp.getClass()
zu drucken - es ist ein Array von Arrays, T[][]
. Du willst Class.getComponentType
.
Ihr A.getClass()
liefert ein String
Array und nicht String
, deshalb erhalten Sie ArrayStoreException
.