Warum funktioniert die Erstellung dieses generischen Arrays nicht wie erwartet?

8

Ich habe den folgenden Code, wo ich ein Array erstellen und versuchen, Objekte darin zu speichern. Zur Laufzeit erhalte ich ArrayStoreException .

%Vor%

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?

    
Poornima Prakash 15.08.2013, 09:31
quelle

3 Antworten

6

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.

    
Vincent van der Weele 15.08.2013, 09:49
quelle
0

Versuchen Sie temp.getClass() zu drucken - es ist ein Array von Arrays, T[][] . Du willst Class.getComponentType .

    
Tom Hawtin - tackline 15.08.2013 09:38
quelle
0

Ihr A.getClass() liefert ein String Array und nicht String , deshalb erhalten Sie ArrayStoreException .

    
Sajan Chandran 15.08.2013 09:49
quelle

Tags und Links