IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Java Discussion :

Class Cast Exception


Sujet :

Java

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    182
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2009
    Messages : 182
    Points : 268
    Points
    268
    Par défaut Class Cast Exception
    Bonjour, jai un petit probleme asser urgent

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     public void execute(Sendable obj)
       {
     
             PlayerInformationList list = (PlayerInformationList) obj;
             Iterator<PlayerInformation> it = list.getPinfo().iterator();
     
             while (it.hasNext())
             {
                PlayerInformation p = it.next(); //erreur ici
                ...
             }

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Exception in thread "Thread-1" java.lang.ClassCastException: java.lang.Integer cannot be cast to com.gubix.shared.PlayerInformation
    	at com.gubix.bsclient.socket.ClientProtocol.execute(ClientProtocol.java:38)
    PlayerInformationList contient une ArrayList<PlayerInformation>
    getPinfo() renvoie l'arraylist en question

    Je ne comprend pas très bien le rapport du Integer dans l'exception...

    peut etre que quelqu'un a un idée??

    Merci d'avance !

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    182
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2009
    Messages : 182
    Points : 268
    Points
    268
    Par défaut
    Jessaie encore de resoudre mon probleme mais sa devient de plus en plus mysterieux:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
      PlayerInformationList list = (PlayerInformationList) obj;
             ArrayList<PlayerInformation> pinfo = new ArrayList<>(list.getPinfo());
     
             //for(int i = 0; i < pinfo.size(); i++)
            main.getMainView().getLobbyView().addPlayer(pinfo.get(0).getUsername(),pinfo.get(0).getImgPlayer());

    Si je roule avec ce code plus d'exception par contre si je decommente la boucle et remplace 0 par i...

    le ClassCastException revient... c'est incompréhensible



  3. #3
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Quelque chose ou quelqu'un a mis un Integer dans ta liste. Comme c'est déclaré comme une List<PlayerInformation>, lire cette liste et utiliser son contenu va forcément déclencher un ClassCastException si elle contient autre chose que des PlayerInformation.

    Normalement le compilateur est censé se servir des génériques pour empêcher qu'on fasse ce genre de choses. Mais il est possible d'ignorer les génériques, et la personne qui insère un Integer dans ta List<PlayerInformation> fait sûrement ça. Il ne faut pas ignorer les génériques, c'est pour ça que le compilateur affiche un avertissement quand on le fait.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

Discussions similaires

  1. Réponses: 7
    Dernier message: 28/10/2013, 11h35
  2. erreur Class Cast Exception
    Par friedamichelle dans le forum Langage
    Réponses: 3
    Dernier message: 25/05/2008, 16h54
  3. Class cast exception
    Par gloglo dans le forum Langage
    Réponses: 3
    Dernier message: 09/01/2007, 18h26
  4. Pb avec une Classe d'exception EOleError
    Par raoulmania dans le forum Composants VCL
    Réponses: 2
    Dernier message: 27/05/2005, 12h39
  5. [Message d'erreur] Classe d'exception
    Par Pascal dans le forum Bases de données
    Réponses: 4
    Dernier message: 23/05/2004, 10h08

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo