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

Java Discussion :

comment connaitre le type d'une variable java


Sujet :

Java

  1. #1
    Membre régulier
    Inscrit en
    Février 2008
    Messages
    222
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 222
    Points : 120
    Points
    120
    Par défaut comment connaitre le type d'une variable java
    Salut,

    Dans une méthode, je voudrais pouvoir :

    - lister les variables de la classe
    - connaitre le type de toutes ces variables


    les variables dont je veux connaitre le type sont des types non primitifs mais plutôt des classes que j'ai créé

    Voila ce que je fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Field[] field = this.getClass().getDeclaredFields();
    int taille = field.length - 1;
     
    while(taille > 0){
          system.err.println("nom de la variable = "+field[taille].getName());
          taille--;
    }
    Et j'aimerais dans cette boucle pouvoir récupérer le type, voila ce que j'ai testé mais qui ne fonctionne pas :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Field[] field = this.getClass().getDeclaredFields();
    int taille = field.length - 1;
    
    while(taille > 0){
          system.err.println("nom de la variable = "+field[taille].getName());
          Object o = field[taille].get(????);
          if(o instanceof maClasse){
                 system.err.println("c'est une variable de type maClasse");
          }
          taille--;
    }

    Comment puis je faire ?

    Merci

  2. #2
    Membre chevronné
    Avatar de CheryBen
    Inscrit en
    Mai 2005
    Messages
    1 599
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 599
    Points : 2 197
    Points
    2 197
    Par défaut
    Bonjour, ce type de boucle peut porter à confusion, il vaut mieux utiliser une boucle for pour parcourir un tableau dont on connait la taille.

    Ce qu'il te manque, c'est bien la méthode pour récupérer la valeur du champ dans this?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Field[] field = this.getClass().getDeclaredFields();
    for(int i = 0 ; i < field.length ; i++) {
        system.err.println("nom de la variable = "+field[taille].getName());
        Object o = field[taille].get(this);
        if(o instanceof maClasse){
            system.err.println("c'est une variable de type maClasse");
        }
    }

  3. #3
    Membre régulier
    Inscrit en
    Février 2008
    Messages
    222
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 222
    Points : 120
    Points
    120
    Par défaut
    Merci, c'est le this dans la méthode get qui me manquait.

    Encore merci

  4. #4
    Membre du Club Avatar de Raphael_Lemaire
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    61
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 61
    Points : 66
    Points
    66
    Par défaut
    Hum sans vouloir choquer je le ferais encore différemment :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Field[] fields = this.getClass().getDeclaredFields();
    // Une boucle foreach java 5 
    for (Field field : fields) {
        System.err.println("nom de la variable = "+field.getName());
        if (field.getType().isAssignableFrom(maClasse)){
            System.err.println("c'est une variable de type maClasse");
        }
    }
    "Le sage ne compte pas les gouttes de la cascade, il cherche pourquoi l'eau désire retrouver la terre."

  5. #5
    Membre régulier
    Inscrit en
    Février 2008
    Messages
    222
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 222
    Points : 120
    Points
    120
    Par défaut
    A oui ! ça fonctionne aussi

    Merci pour votre rapidité

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

Discussions similaires

  1. Comment connaitre le type d'une colonne dans un dbgrid ?
    Par alheuredudejeuner dans le forum Composants VCL
    Réponses: 2
    Dernier message: 11/04/2012, 18h50
  2. [PowerShell] Comment retrouver le type d'une variable avec Where-Object
    Par badack dans le forum Scripts/Batch
    Réponses: 5
    Dernier message: 19/07/2010, 16h49
  3. Comment connaitre le type d'une colonne ?
    Par krilas dans le forum Bases de données
    Réponses: 4
    Dernier message: 23/11/2009, 15h55
  4. [Dates] Connaitre le type d'une variable
    Par Sytchev3 dans le forum Langage
    Réponses: 4
    Dernier message: 03/10/2007, 15h36
  5. Connaitre le type d'une variable
    Par mic79 dans le forum Langage
    Réponses: 2
    Dernier message: 04/01/2006, 15h42

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