Probleme avec type Object

Résolu
Slyders Messages postés 300 Date d'inscription mardi 12 octobre 2004 Statut Membre Dernière intervention 8 janvier 2010 - 20 mai 2009 à 10:53
Slyders Messages postés 300 Date d'inscription mardi 12 octobre 2004 Statut Membre Dernière intervention 8 janvier 2010 - 20 mai 2009 à 11:29
Bonjour,

J'essaie de récupérer un élément d'un object mais je sais pas comment faire :

if (value instanceof Object[]) {
               
                for (Object o : (Object[]) value) {
                    test = o.toString();
                }
                return test;
            }
mon test retourne la chaine suivante :{name=test, id=0156, Date=2009-05-20 00:00:00.0}

mais je voudrais récupérer seulement un champ de cet object ...(name)

si je fait un o.quelque chose j'ai aucune possibilité à part toString ... :x

Merci de votre aide :x

3 réponses

cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
20 mai 2009 à 11:03
Salut,

Normal, vu que la classe Object est la classe la plus générique qui soit en java : toute classe en java est un object, donc c'est normal que les possibilités d'un object soit limité !

Il te faut caster le type d'objet en son type concret pour pouvoir utiliser les propriétés que tu veux, par exemple avec la classe Patate qui contient une propriété prix :
Patate test = new Patate();
test.getPrix(); // OK
Object testPatate = test;
testPatate.getPrix(); // PAS OK !
((Patate) testPatate).getPrix(); // OK
3
Slyders Messages postés 300 Date d'inscription mardi 12 octobre 2004 Statut Membre Dernière intervention 8 janvier 2010 2
20 mai 2009 à 11:29
Ok sa retourne le champ que je veux avec :

        HashMap test;
        String mastring = new String();
        while (i.hasNext()) {
            key= (String) i.next();
            Object value = resultat.get(key);
            if (value instanceof Object[]) {
               
                for (Object o : (Object[]) value) {
                    test = (HashMap) o;
                    mastring = test.get("name").toString();
                }
               
                return mastring ;
            }

Merci d'avoir alimenté ma réflexion !
3
Slyders Messages postés 300 Date d'inscription mardi 12 octobre 2004 Statut Membre Dernière intervention 8 janvier 2010 2
20 mai 2009 à 11:23
ok je voie ...
ma variable value est déclaré comme ça : Object value = resultat.get(key);

j'ai donc pensé a faire :
Object[] test;
Object value = resultat.get(key);
            if (value instanceof Object[]) {
               
                for (Object o : (Object[]) value) {
                    test = ((Object[])o);
                    Map MapdeTest = (Map) test [1];
                    mastring = MapdeTest .get("name").toString();
                }
               
                return mastring;
            }
Mais j'ai une erreur de HashMap sur ((Object[])o) ... bizzar, je me rend bien compte que c'est bancal la ^^
0
Rejoignez-nous