Probleme avec type Object

[Résolu]
Signaler
Messages postés
300
Date d'inscription
mardi 12 octobre 2004
Statut
Membre
Dernière intervention
8 janvier 2010
-
Messages postés
300
Date d'inscription
mardi 12 octobre 2004
Statut
Membre
Dernière intervention
8 janvier 2010
-
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

Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
129
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
Messages postés
300
Date d'inscription
mardi 12 octobre 2004
Statut
Membre
Dernière intervention
8 janvier 2010
2
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 !
Messages postés
300
Date d'inscription
mardi 12 octobre 2004
Statut
Membre
Dernière intervention
8 janvier 2010
2
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 ^^