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

avec Java Discussion :

Class.forName(...) - erreur : java.lang.ClassNotFoundException


Sujet :

avec Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    116
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 116
    Points : 40
    Points
    40
    Par défaut Class.forName(...) - erreur : java.lang.ClassNotFoundException
    Bonjour,

    je souhaite récupérer les variables privées d'une class.

    Si je fais ceci, ça fonctionne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    public Field[] getEntityFields()
    			throws ClassNotFoundException {
            Class c = this.getClass();
            return c.getDeclaredFields();
    }
    Par contre, si je fais ceci, j'ai l'erreur : java.lang.ClassNotFoundException:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    public Field[] getEntityFields()
    			throws ClassNotFoundException {
        	String cn = this.getClass().toString();
        	System.out.println("$$ Class Name " + cn);
        	Class c = Class.forName(cn);
    		return c.getDeclaredFields();
    	}
    Auriez vous une idée de la cause de l'erreur?

    Merci

  2. #2
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2004
    Messages
    1 184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 184
    Points : 1 745
    Points
    1 745
    Par défaut
    Facile, compare ces deux affichages :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    System.out.println(getClass().toString());
    System.out.println(getClass().getName());


    Et pourquoi repasser par Class.forName(...) alors que tu as directement la Class avec getClass() ?


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    public Field[] getEntityFields()
    throws ClassNotFoundException {
    Class c = getClass();
    System.out.println("$$ Class Name " + c.getName());
    return c.getDeclaredFields();
    }

  3. #3
    Membre émérite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2008
    Messages
    1 190
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 1 190
    Points : 2 657
    Points
    2 657
    Par défaut
    Tu ne récupères pas simplement les variables privées là, mais aussi les variables public.

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    116
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 116
    Points : 40
    Points
    40
    Par défaut
    merci.
    vraiment une erreur bête

Discussions similaires

  1. Réponses: 3
    Dernier message: 09/11/2012, 17h13
  2. [Debutant] erreur Java.lang.ClassNotFoundException
    Par chlebta*tsotsi dans le forum JDBC
    Réponses: 3
    Dernier message: 20/05/2011, 07h26
  3. Réponses: 3
    Dernier message: 01/07/2009, 15h16
  4. [Struts 1.3.8] Erreur java.lang.ClassNotFoundException
    Par DomIII dans le forum Struts 1
    Réponses: 17
    Dernier message: 10/05/2009, 18h51
  5. Réponses: 1
    Dernier message: 04/07/2008, 19h15

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