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 :

NoSuchFieldException Reflection Attribut Classe


Sujet :

Langage Java

  1. #1
    Membre confirmé Avatar de totoche
    Inscrit en
    Janvier 2004
    Messages
    1 090
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 090
    Points : 558
    Points
    558
    Par défaut NoSuchFieldException Reflection Attribut Classe
    Bonjour,


    J'ai un classe ws sur laquelle je mène une introspection
    Cette classe ws possède comme propriété une classe mConn


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    Class wsReflexion = ws.getClass();
            Field fld[] = wsReflexion.getDeclaredFields();
                   for (int i = 0; i < fld.length; i++) {
                   System.out.println(fld[i].getName());
                   //m'affiche bien le champ mConn ainsi que les autres propriétés
                   }
                try {
                 Field mc = wsReflexion.getField("mConn");
                 //Erreur java.lang.NoSuchFieldException
                 //Signals that the class doesn't have a field of a specified name. ..
    Je comprends pas pourqui je 'catch' l'exception alors que dans la boucle le champ est bien affiché.

    Merci de votre aide
    La patience est un arbre aux racines amères, mais aux fruits ci-doux.

  2. #2
    Membre du Club
    Inscrit en
    Février 2010
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 38
    Points : 52
    Points
    52
    Par défaut
    Hello,

    il faut que tu fasses :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     Field mc = wsReflexion.getDeclaredField("mConn")
    à la place de

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Field mc = wsReflexion.getField("mConn");

  3. #3
    Membre confirmé Avatar de totoche
    Inscrit en
    Janvier 2004
    Messages
    1 090
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 090
    Points : 558
    Points
    558
    Par défaut
    Ok merci, j'ai plus l'erreur..

    Cependant comment puis-je faire pour accèder au propriétées de la classe mConn, puisque pour l'instant je l'ai en tant que Field :

    Field mc = wsReflexion.getDeclaredField("mConn")

    Autrement dit comment caster Field ?

    Merci de ton aide
    La patience est un arbre aux racines amères, mais aux fruits ci-doux.

  4. #4
    Membre du Club
    Inscrit en
    Février 2010
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 38
    Points : 52
    Points
    52
    Par défaut
    Hi,

    il suffit de faife

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    field.setAccesible(true)
    Object mConn = mafield.get(wsReflexion)

  5. #5
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 553
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 553
    Points : 21 609
    Points
    21 609
    Par défaut
    +1

    Ce qui, techniquement, n'est pas pas un cast.
    Un objet Field est associé à sa classe, pas à une instance d'objet. Donc pour connaître la valeur runtime d'un Field, il faut bien entendu lui indiquer quel est l'objet dont on veut la valeur de ce field.
    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. Problème avec l'attribut class
    Par Marty000 dans le forum Mise en page CSS
    Réponses: 3
    Dernier message: 20/11/2006, 08h51
  2. rendre l'attribut class prioritaire sur l'attribut style
    Par danyboy85 dans le forum Mise en page CSS
    Réponses: 10
    Dernier message: 24/10/2006, 14h16
  3. comment exploiter l'attribut classe en JS?
    Par Sheriff dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 12/10/2006, 02h48
  4. Mise à jour de l'attribut "class"
    Par Bruno2000 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 07/09/2006, 08h00
  5. Réponses: 5
    Dernier message: 24/04/2003, 11h47

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