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 :

Recupérer une classe interne avec Class.forName


Sujet :

Java

  1. #1
    Membre expert
    Avatar de Pragmateek
    Homme Profil pro
    Formateur expert .Net/C#
    Inscrit en
    Mars 2006
    Messages
    2 635
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Formateur expert .Net/C#
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 635
    Points : 3 958
    Points
    3 958
    Par défaut Recupérer une classe interne avec Class.forName
    Bonjour,

    comment récupérer un objet "Class" se référant à une classe interne ?
    Exemple :
    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
    class Test
    {
     
            public static class A
            {
                    A()
                    {
                            System.out.println("A");
                    }
                    public void f()
                    {
                            System.out.println("f");
                    }
            }
     
            public static void main(String[] args)
            {
                    Class classA = null;
                    try
                    {
                            classA = Class.forName("A");
                    }
                    catch (ClassNotFoundException e)
                    {
                            System.out.println("ClassNotFoundException");
                    }
                    try
                    {
                            System.out.println(classA.getName());
                            A a = (A)classA.newInstance();
                            a.f();
                    }
                    catch (InstantiationException e)
                    {
                            System.out.println("InstantiationException");
                    }
                    catch (IllegalAccessException e)
                    {
                            System.out.println("IllegalAccessException");
                    }
            }
    }
    lève l'exception "ClassNotFoundException" .
    Idem avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    classA = Class.forName("Test.A");
    Merci .
    Formateur expert .Net/C#/WPF/EF Certifié MCP disponible sur Paris, province et pays limitrophes (enseignement en français uniquement).
    Mon blog : pragmateek.com

  2. #2
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 4
    Points : 5
    Points
    5
    Par défaut
    Bonjour,

    Je crois que tu y es presque.

    Citation Envoyé par seriousme Voir le message

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    classA = Class.forName("Test.A");
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    classA = Class.forName("Test$A");
    lorsque tu compiles Test.java, tu obtiens deux fichiers :
    Test.class et Test$A.class

  3. #3
    Membre expert
    Avatar de Pragmateek
    Homme Profil pro
    Formateur expert .Net/C#
    Inscrit en
    Mars 2006
    Messages
    2 635
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Formateur expert .Net/C#
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 635
    Points : 3 958
    Points
    3 958
    Par défaut
    En effet avec "Test$A" ça marche .

    Merci de ton aide .

    Sinon à quoi correspond le fichier "Test$A.class" ?
    Formateur expert .Net/C#/WPF/EF Certifié MCP disponible sur Paris, province et pays limitrophes (enseignement en français uniquement).
    Mon blog : pragmateek.com

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 4
    Points : 5
    Points
    5
    Par défaut
    Les fichiers class sont les résultats de la compilation d'une classe java. Comme les fichiers o sont les résultats de la compilation en C. Sans ces fichiers, tu ne peux pas lancer ton programme.

    Le fichier Test.class contient ce qu'on appelle le byte code de Test.java et Test$A.class le byte code de Test.A.

    Bonne continuation.

  5. #5
    Membre expert
    Avatar de Pragmateek
    Homme Profil pro
    Formateur expert .Net/C#
    Inscrit en
    Mars 2006
    Messages
    2 635
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Formateur expert .Net/C#
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 635
    Points : 3 958
    Points
    3 958
    Par défaut
    Merci pour tout .
    Formateur expert .Net/C#/WPF/EF Certifié MCP disponible sur Paris, province et pays limitrophes (enseignement en français uniquement).
    Mon blog : pragmateek.com

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

Discussions similaires

  1. Tri sur une list(of) avec classe perso
    Par Faladin dans le forum VB.NET
    Réponses: 9
    Dernier message: 04/08/2008, 20h13
  2. Classe anonyme et classe interne
    Par amazircool dans le forum Langage
    Réponses: 8
    Dernier message: 26/12/2007, 14h45
  3. Probleme avec classes internes
    Par pseudobidon57 dans le forum Langage
    Réponses: 5
    Dernier message: 03/07/2007, 11h49
  4. Réponses: 10
    Dernier message: 28/11/2006, 21h53
  5. Heritage de classe avec classes internes
    Par Regis.C dans le forum Langage
    Réponses: 11
    Dernier message: 27/04/2005, 12h19

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