• [^] # Re: Ca me parrait normal ...

    Posté par . En réponse au message Impossible d'affecter une adresse. Évalué à 2.

    Le pourquoi de l'exception

    Dans la fonction, tu crées un tableau de type Object[] (qui peut contenir n'importe quel objet). Ce tableau est ensuite casté vers un tableau de type Integer[].
    Le cast ne marche que dans un sens !
    Dans le cas des objets, tu peux caster un Integer vers un Object (car Integer hérite de Object). Si tu essayes l'inverse, tu auras droit à un ClassCastException du plus bel effet. Pour les tableaux, c un peu pareil. Tu peux caster un tableau de type Integer[] vers Object[] (car Integer hérite de Object) mais l'inverse n'est pas possible (d'où le ClassCastException).

    Correctif - Utilisation de Vector

    Un Vector consiste en un tableau d'Object retaillable avec plein de fonctions autour (voir la doc).
    Tu replaces tes tableaux par des Vectors. Pour ajouter un objet à la fin du tableau, tu utilises la méthode put(Object valeur). Pour lire un objet à une position donnée tu utilises la méthode get(int index). Jusqu'à Java5, tu est obligé de caster le résultat du get pour obtenir le bon type. Depuis Java5 la généricité permet de s'affranchir dans pas mal de cas du cast.