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

Langage Java Discussion :

ClassCastException: [Ljava.lang.Object et Liste


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Septembre 2006
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 17
    Par défaut ClassCastException: [Ljava.lang.Object et Liste
    Bonsoir,

    J´ai ume methode qui effectue une requete et renvoie un resultat de type List
    . Dans ce cas avec la valeur 55, je dois avoir 3 objects qui ont plusieurs parametres (id, nom, titre, identification, etc...)
    Mais au niveau de System.out.println(list.get(i).getIdentifier()); , j´ai le message d´erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    Exception in thread "main" java.lang.ClassCastException: [Ljava.lang.Object;
    avec
    list.get(i).getIdentifier() je voudrai acceder au champs identification de chaque resultat .

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
       int i=0;
    		List<Content> list = getmonDAO().getById("55"));
    		Iterator it = list.iterator();
     
    		 while(it.hasNext()){
     
    			 System.out.println(list.get(i).getIdentifier());			 
    			 i++;			 
    		 }
    Comment ca se passe?
    Merci

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    406
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 406
    Par défaut
    Salut,
    Je suppose que ta méthode getIdentifier() affiche à l'écran (avec des System.out.println() par exemple) les champs que tu souhaites voir (id, nom, titre...).
    On te retourne une exception du type ClassCastException, je suppose donc que tu as un problème de cast.
    De quel type sont tes objets de la liste ??
    Imaginons qu'ils sont du type Personne, essaie :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    (Personne) list.get(i).getIdentifier(); // tu cast ici.
    Et je pense que tu devrais peut être faire le ou les System.out.println() dans ta fonction getIdentifier() au lieu de le faire comme ça.

    Voilà, j'espère t'avoir aidé. A+

  3. #3
    Membre chevronné Avatar de supermanu
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    330
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2004
    Messages : 330
    Par défaut
    Visiblement tu es en java 1.5 et ta liste "list" contient des objets Content ?

    Donc pour parcourir cette liste tu peux faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    for (Content content : list) {
      System.out.println(content.getIdentifier());
    }
    Là tu as mélangé l'utilisation d'iterator et d'une bonne vieille boucle avec incrémentation de i.

    Après peut-être que ta méthode getmonDAO().getById() ne te retourne pas une liste contenant des objets Content...

  4. #4
    Membre averti
    Inscrit en
    Septembre 2006
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 17
    Par défaut
    Mes objetcs sont de type Content, et getIdentifier renvoie un element de type String.
    J´ai testé la solution de womannosky et il me dit qu´il peut pas caster un String en content.
    Pour supermanu il me renvoit le meme message d´erreur.
    A bientot

  5. #5
    Membre chevronné Avatar de supermanu
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    330
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2004
    Messages : 330
    Par défaut
    Et tu n'as pas un peu plus de détails sur l'exception ?

    Tu peux nous montrer le code de getmonDAO().getById(...) ?

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    406
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 406
    Par défaut
    Et ça marche pas ça ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    System.out.println((Content) list.get(i).getIdentifier());

  7. #7
    Membre averti
    Inscrit en
    Septembre 2006
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 17
    Par défaut
    quand j´ajoute System.out.println(it.next()); dans la boucle il me renvoie ceci:
    [Ljava.lang.Object;@688954 comme reponse, effectivement il a bel et bien un resultat.

    Pour le code de mon getById c´est ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    public Content getById(String id) {
    		return (Content) super.getById(id, Content.class);
    	}
    et le super.getById provient de ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
      protected Object getById(Serializable id, Class theClass) {         
            return getById(id, theClass, false);
        }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Avec  System.out.println((Content) list.get(i).getIdentifier()); il me donne
    Erreur :Cannot cast from String to Content
    A bientot

  8. #8
    Membre averti
    Inscrit en
    Septembre 2006
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 17
    Par défaut
    getIdentifier() est methode de la classe content et doit me retourner un string. Content getById(String id) est dans ma classe service et doit me retourner un(ou une serie de Content) Content à partir du id.

  9. #9
    Membre chevronné Avatar de supermanu
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    330
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2004
    Messages : 330
    Par défaut
    Et si tu fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    System.out.println(((Content) list.get(i)).getIdentifier());
    Sachant que je ne comprends vraiment pas pourquoi ça ne marche pas avec la méthode que je t'ai donné.

    Je viens de tester un exemple avec succès :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    List<Hotel> hotels = finder.trouveHotelsParVille("Londres");
    for(Hotel h : hotels) {
      System.out.println(h.getVille());
    }
    Mystère...

  10. #10
    Membre averti
    Inscrit en
    Septembre 2006
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 17
    Par défaut
    moi meme j´y pige plus que dalle.
    je viens de faire : System.out.println(content.getId()); et aussi System.out.println(((Content) list.get(1)).getIdentifier()); et j´ai comme erreur:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Exception in thread "main" java.lang.ClassCastException: [Ljava.lang.Object;
    	at com.test.MyLibraryTestUser.main(MyTest.java:29)
    J´y pige plus rien

Discussions similaires

  1. Ljava.lang.Object; incompatible with ma.eai.batch.ovo.util.Compte
    Par samiamiya dans le forum Général Java
    Réponses: 2
    Dernier message: 20/07/2012, 11h49
  2. java.lang.Object javax.media.Buffer.getData()
    Par keil dans le forum Multimédia
    Réponses: 3
    Dernier message: 28/07/2011, 13h41
  3. Réponses: 1
    Dernier message: 02/10/2009, 16h49
  4. [java.lang] Object/String --> compareTo() ou equals()
    Par wdionysos dans le forum Langage
    Réponses: 17
    Dernier message: 17/01/2006, 23h41
  5. [Débutant] java.lang.object
    Par bonnefr dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 27/05/2004, 14h54

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