J'ai le code suivant où je crée un tableau et j'essaie de stocker des objets dedans. Au moment de l'exécution, je reçois un ArrayStoreeException code>. T[] temp = (T[]) Array.newInstance(A.getClass(), A.length);
3 Réponses :
Essayez l'impression temp.getclass () code> - c'est un tableau de tableaux, T [] [] code>. Vous voudrez classe.getComponenttype code>. P>
Non. La DOC dit: Si ComponentType représente une classe de tableau, le nombre de dimensions de la nouvelle matrice est égal à la somme des dimensions.Length et le nombre de dimensions du composantType. Dans ce cas, le type de composant de la nouvelle matrice est le type de composantype.
@ nes1983 quoi? "renvoie la classe représentant le type de composant d'un tableau. Si cette classe ne représente pas une classe de matrice, cette méthode renvoie NULL." i>
Honnêtement, je pense que cette API suce.
Le type de Vous voulez Le type de composant de la matrice, plutôt que le type de matrice elle-même. p> Utilisez cette ligne à la place: p> et le code fonctionne bien. P > p> A code> est java.lang.string [] code>, plutôt que java.lang.string code>.
Merci! Cela a corrigé!
Votre a.getclass () code> retourne un chaîne code> tableau et non string code>, c'est pourquoi vous obtenez arraystoreexception code >. p>
Avez-vous confirmé (avec un débogueur ou
impression code> instruction) quea.getclass () code> estchaîne code>?