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

Développement Web en Java Discussion :

Afficher tous les attributs d'un objet Java


Sujet :

Développement Web en Java

  1. #1
    Membre régulier
    Femme Profil pro
    Analyste-developpeur java
    Inscrit en
    Mai 2010
    Messages
    135
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Analyste-developpeur java
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2010
    Messages : 135
    Points : 76
    Points
    76
    Par défaut Afficher tous les attributs d'un objet Java
    Bonjour!

    J'aimerais connaître la valeur de tous les attributs d'un objet java. Mais sans avoir à utiliser des: objet.getAttribut1().toString();, objet.getAttribut2().toString(); ... objet.getAttributN().toString(); assez laborieux.

    Sauriez vous svp s'il existe une méthode java qui pourrait par exemple permettre de récupérer la valeur de tous les attributs sous forme d'un tableau de String ou une méthode similaire?

    Merci!

  2. #2
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 310
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 310
    Points : 9 522
    Points
    9 522
    Billets dans le blog
    1
    Par défaut
    Il faut passer par la reflexion...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    tonInstanceObjet.getClass().getDeclaredFields();
    etc...
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre régulier
    Homme Profil pro
    Inscrit en
    Mars 2008
    Messages
    70
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2008
    Messages : 70
    Points : 76
    Points
    76
    Par défaut
    Bonjour ,

    à ma connaissance non .

    Cependant tu peux sur ton objet redefinir la méthode toString et ainsi lorsque tu fais ton objet.toString il te renvoi une chaine contenant la valeur de tous tes attributs directement.

    ca donnerai quelque chose comme ca ( moins laborieux à écrire)

    public String toString(){

    StringBuffer sb = new StringBuffer("");
    sb.append(this.attribut1+"\n");
    sb.append(this.attribut2+"\n");
    sb.append(this.attribut3+"\n");
    sb.append(this.attribut4+"\n");


    return sb.toString() ;
    }
    Tu peux faire un tableau de cette chaine assez facilement --> StringTokenizer


    EDIT : J'ai posté en même temps que le modérateur qui est sans doute meilleur que moi . Je ne connaissais pas cette solution

  4. #4
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 310
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 310
    Points : 9 522
    Points
    9 522
    Billets dans le blog
    1
    Par défaut
    Un petit exemple basic pour faire comprendre le principe... comme il n'y a pas de retour...
    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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
     
    package test;
     
    import java.lang.reflect.Field;
     
    public class TestReflexion
    {
     
        public static void main(String[] args)
        {
            try
            {
                Personne obj = new Personne();
     
                Field[] fields = obj.getClass().getDeclaredFields();
                for (Field field : fields)
                {
                    field.setAccessible(true);
                    System.out.println(field.getName() + " -> " + field.get(obj));
                }
            }
            catch (Exception e)
            {
                System.out.println(e.toString());
            }
        }
    }
     
    /*
     * Classe à traiter
     */
    class Personne
    {
        private String nom;
        private String prenom;
        private String adresse;
        private String ville;
        private String cp;
     
        public Personne()
        {
            super();
            nom = "LE NOM";
            prenom = "Prénom";
            adresse = "une adresse";
            cp = "68000";
            ville = "VILLE";
        }
     
        public String getNom()
        {
            return nom;
        }
     
        public void setNom(String nom)
        {
            this.nom = nom;
        }
     
        public String getPrenom()
        {
            return prenom;
        }
     
        public void setPrenom(String prenom)
        {
            this.prenom = prenom;
        }
     
        public String getAdresse()
        {
            return adresse;
        }
     
        public void setAdresse(String adresse)
        {
            this.adresse = adresse;
        }
     
        public String getVille()
        {
            return ville;
        }
     
        public void setVille(String ville)
        {
            this.ville = ville;
        }
     
        public String getCp()
        {
            return cp;
        }
     
        public void setCp(String cp)
        {
            this.cp = cp;
        }
    }
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Membre régulier
    Femme Profil pro
    Analyste-developpeur java
    Inscrit en
    Mai 2010
    Messages
    135
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Analyste-developpeur java
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2010
    Messages : 135
    Points : 76
    Points
    76
    Par défaut
    Merci beaucoup de vos réponse!

    Et OButterlin je te remercie de cet exemple!
    En fait j'étais en train de tenter d'utiliser la méthode que tu as suggéré :
    tonInstanceObjet.getClass().getDeclaredFields();
    et après récupération des noms des attributs j'avais dans l'idée de créer une fonction getter java modulable par le nom des attributs(getX()).

    Je me suis aperçue que c'était impossible (je suis plutôt débutante en java).
    Donc merci!

  6. #6
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 310
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 310
    Points : 9 522
    Points
    9 522
    Billets dans le blog
    1
    Par défaut
    Je t'en prie...

    Si ton problème est réglé, n'oublie pas de passer la discussion à "Résolu", merci.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 19/06/2014, 14h12
  2. Réponses: 1
    Dernier message: 29/09/2008, 16h21
  3. [Smarty] Afficher les attributs d'un objet
    Par Arnaud62 dans le forum Bibliothèques et frameworks
    Réponses: 3
    Dernier message: 16/05/2008, 17h08
  4. Réponses: 2
    Dernier message: 15/07/2007, 12h43
  5. afficher tous les objets d'un formulaire
    Par sebhm dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 15/01/2007, 15h09

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