Lors de la tentative de diffusion d'une ArrayList
<code class="java">final String[] v1 = i18nCategory.translation.get(id); final ArrayList<String> v2 = new ArrayList<>(Arrays.asList(v1)); String[] v3 = (String[]) v2.toArray();</code>
Cela se produit quel que soit le contenu de la v2 (même un tableau vide).
Cette erreur se produit car toArray() renvoie un Object[], pas un String[]. Les génériques ne sont disponibles qu'au moment de la compilation, de sorte que la machine virtuelle Java (JVM) ne peut pas déterminer le type de tableau à créer. Par conséquent, la valeur par défaut est Object[], qui ne peut pas être converti en String[].
Pour résoudre ce problème, spécifiez explicitement le type de tableau à l'aide de toArray(T[] a) et fournissez le type de tableau souhaité en tant que paramètre. Par exemple, ce code créera correctement un String[] :
<code class="java">String[] v3 = v2.toArray(new String[v2.size()]);</code>
Cette méthode garantit que le tableau renvoyé sera du type et de la taille corrects.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!