Maison > Java > javaDidacticiel > le corps du texte

Pourquoi la conversion d'un tableau d'objets en un tableau d'entiers entraîne-t-elle une exception ClassCastException ?

Patricia Arquette
Libérer: 2024-10-27 13:03:01
original
969 Les gens l'ont consulté

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

Pourquoi la conversion d'un tableau d'objets en un tableau d'entiers déclenche une exception ClassCastException

L'extrait de code suivant rencontre une erreur :

Object[] a = new Object[1];
Integer b=1;
a[0]=b;
Integer[] c = (Integer[]) a;
Copier après la connexion

L'erreur, "java.lang.ClassCastException : [Ljava.lang.Object; ne peut pas être converti en [Ljava.lang.Integer;", apparaît dans la dernière ligne.

Raison :
Le problème vient du fait que vous ne pouvez pas traiter un tableau d’entiers comme un tableau d’objets. Alors que Integer[] est un sous-type de Object[], Object[] n'est pas un sous-type de Integer[].

Par conséquent, tenter de convertir un Object[] en Integer[] entraîne une ClassCastException.

Code alternatif :
Pour résoudre ce problème, utilisez l'une des méthodes suivantes :

Integer[] integerArray = Arrays.copyOf(a, a.length, Integer[].class);
Integer[] integerArray = Arrays.copyOfRange(a, 0, a.length, Integer[].class);
Copier après la connexion

Vous pouvez également empêcher l'exception ClassCastException en vous assurant que le tableau les éléments sont tous de type Integer, comme dans le code correct suivant :

Object[] a = new Integer[1];
Integer b=1;
a[0]=b;
Integer[] c = (Integer[]) a;
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!