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 :

Object vers List<Object>


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    158
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 158
    Par défaut Object vers List<Object>
    Bonjour,
    J'ai une méthode qui me retourne un type (Object). Mais je veux caster cet Object à List<Object>. Voici le code que j'ai essayé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    List<Object> response = null;
    Object reponse = (Object) client.execute("Ppp.nomMethode", params);
    response = (List<Object>) reponse;
    le message d'erreur est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    java.lang.ClassCastException: [Ljava.lang.Object;
    	at MaClasse.main(MaClasse.java:111)
    P.S : je travaille avec un client XMLRPC.

    Y-a-t-il un moyen de faire un cast Object vers List<Object>?

    Merci.

  2. #2
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Salut,


    Si tu as une ClassCastException, cela signifie que ce n'est pas une List<Object>... et d'après le message d'erreur on dirait que c'est plutôt un tableau d'Object...


    a++

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    158
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 158
    Par défaut
    J'ai essayé de mettre mon retour Object dans un ArrayList. Mais après je sais pas comment je peux l'intégrer dans un List<Object>.
    En fait, mon traitement après la récupération de Object se fait sur List<Object>, c'est pour ça j'essaie de faire ce cast.
    Mon but est de chercher un moyen que me fais la transformation : Object -> List <Object>.

    Voici ce que j'ai pu ajouter:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Object reponse = (Object) client.execute("Ppp.getListCard", params);
    ArrayList<Object> myArr = new ArrayList<Object>();
    myArr.add(reponse);
    Et j'ai resté coincé à ce stade là.

    Merci.

  4. #4
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par lahmar.abdel1 Voir le message
    Et j'ai resté coincé à ce stade là.
    Pourquoi ?


    a++

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    158
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 158
    Par défaut
    Le traitement que je doive le faire après la récupération de Object est :
    : représente une entête qui a un traitement spécial.
    Si donc un traitement supplémentaire à faire.
    Ci dessous le traitement à faire si j'ai bien in List<Object> :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
     
    if (response!=null) {
    //First element is always there, this is the header in a Map
     
    Map header = (Map)response.get(0); 
    System.out.println("header = "+ header);
    System.out.println("elt1Header = "+ header.get("RequestResponse"));
    System.out.println("elt2Header = "+ header.get("ResponseWording"));
     
    //Test is there are cards in the response
    if(response.size()>1) {
     
    Object [] cards = (Object []) response.get(1);
    	for (int i=0; i<cards.length;i++) {
    	HashMap currentCard = (HashMap)cards[i];
    	System.out.println("Card response #"+i);
    	//Here, all fields defined in the card structure are accessible
    	System.out.println(" RandomNum="+currentCard.get("RandomNum"));
    	System.out.println(" CardResponse="+currentCard.get("CardResponse"));
    System.out.println(" CardResponseWording="+currentCard.get("CardResponseWording"));
    System.out.println(" CardBalance="+currentCard.get("CardBalance"));
    					}
    				}
    			}
    Avec ce code, j'ai eu une autre erreur de cast :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    java.lang.ClassCastException: [Ljava.lang.Object;
    	at MaClasse.main(MaClasse.java:132)
    au niveau de :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Map header = (Map)response.get(0);
    Y at-il un autre moyen de faire ce cast autre que de passer par un ArrayList<Object>.

    Merci.

  6. #6
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Ben tu ne fais que déporter le problème...

    Apparemment tu as un tableau d'Object, donc tu ne peux le caster que vers un tableau d'Object. Ca n'a aucun sens de caster cela vers une List ou une Map...


    Que contient exactement l'objet retourné par la méthode execute() ???

    a++

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 8
    Dernier message: 03/09/2014, 22h23
  2. Peut faire un Dispose d'une List(Of object) ?
    Par MadLion dans le forum VB.NET
    Réponses: 6
    Dernier message: 19/11/2007, 11h15
  3. [C#] Conversion implicite de type object vers int
    Par alexking2005 dans le forum C#
    Réponses: 5
    Dernier message: 02/01/2007, 10h02
  4. List ordre object
    Par drKzs dans le forum Collection et Stream
    Réponses: 4
    Dernier message: 14/09/2006, 17h43
  5. caster une List<Object> en List<..>
    Par K-Kaï dans le forum Langage
    Réponses: 2
    Dernier message: 30/05/2006, 17h43

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