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 :

Description classe et méthodes


Sujet :

Java

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 48
    Points : 38
    Points
    38
    Par défaut Description classe et méthodes
    Bonjour,

    Je voulais savoir s'il existe une méthode qui permet de tout savoir sur un objet instancié, c'est à dire : ses attributs initialisé, ses méthodes utilisées, le ou les constructeurs appelé et bien sur de récupérer les valeurs.

  2. #2
    Modérateur
    Avatar de dinobogan
    Homme Profil pro
    ingénieur
    Inscrit en
    Juin 2007
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : ingénieur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Points : 7 163
    Points
    7 163
    Par défaut
    Tu trouveras tout ce qu'il faut dans la Javadoc.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
    Que la force de la puissance soit avec le courage de ta sagesse.

  3. #3
    Membre chevronné
    Inscrit en
    Mai 2006
    Messages
    1 364
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 1 364
    Points : 1 984
    Points
    1 984
    Par défaut
    Ca ressemble beaucoup à un debugger ce que tu demandes...

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 73
    Points : 179
    Points
    179
    Par défaut
    Ce que tu cherches s'appelle l'introspection.
    T as un bon tutoriel ici :
    http://ricky81.developpez.com/tutori...pi/reflection/

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 48
    Points : 38
    Points
    38
    Par défaut
    merci pour vos réponses,

    Citation Envoyé par Mens Pervincet Voir le message
    Ce que tu cherches s'appelle l'introspection.
    T as un bon tutoriel ici :
    http://ricky81.developpez.com/tutori...pi/reflection/
    j'irai lire le tuto qui semble répondre à mes questions.

    merci encore.

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 48
    Points : 38
    Points
    38
    Par défaut
    parfait, concernant les classes mères, attributs et méthodes j'ai trouvé tout ce que je cherchais.

    Du coup j'ai une autre petite question :
    Est ce possible de déterminer toutes les classes des objets instanciés, c'est a dire si j'ai dans une classe A une appellation à une autre classe B :
    public class A{

    public void methode {
    B b = new B();
    }
    }

    j'aimerai récupérer toutes les classes appelées comme j'ai montré pour B.

    Cela est-t'il possible?

  7. #7
    Membre à l'essai
    Inscrit en
    Mai 2009
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 4
    Points : 11
    Points
    11
    Par défaut
    En utilisant l'introspection, il suffit de récupérer l'ensemble des champs de la classe, puis pour chacun d'eux de récuperer leur type.

    Restera alors à trier le résultat pour oter les doubons et les types simples.

  8. #8
    Modérateur

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Citation Envoyé par bluefingers Voir le message
    En utilisant l'introspection, il suffit de récupérer l'ensemble des champs de la classe, puis pour chacun d'eux de récuperer leur type.
    Non, ça ne listera pas l'utilisation de ces classes à l'intérieur de blocs. Comme les variables locales d'une méthode, par exemple.

    Je suis sûr qu'une telle chose est possible, en analysant le bytecode de la classe qu'on veut étudier, et en prenant la liste des classes dont elle dépend. Mais je ne connais pas d'outil pour ça, et je ne sais même pas si le bytecode d'une classe chargée est consultable par le programme.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 48
    Points : 38
    Points
    38
    Par défaut
    Citation Envoyé par bluefingers Voir le message
    En utilisant l'introspection, il suffit de récupérer l'ensemble des champs de la classe, puis pour chacun d'eux de récuperer leur type.
    Sauf que je cherche pas à faire ça pour les attributs mais plutôt comme thelvin dit :
    Citation Envoyé par thelvin Voir le message
    Non, ça ne listera pas l'utilisation de ces classes à l'intérieur de blocs. Comme les variables locales d'une méthode, par exemple.
    Donc voilà faut trouver la méthode qui permettra de de terminer les dépendances via les instanciations des variables locales.

  10. #10
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 73
    Points : 179
    Points
    179
    Par défaut
    Citation Envoyé par Oussema86 Voir le message
    Du coup j'ai une autre petite question :
    Est ce possible de déterminer toutes les classes des objets instanciés, c'est a dire si j'ai dans une classe A une appellation à une autre classe B :
    public class A{

    public void methode {
    B b = new B();
    }
    }

    j'aimerai récupérer toutes les classes appelées comme j'ai montré pour B.

    Cela est-t'il possible?
    Je n'ai pas très bien compris ta question. Tu veux analyser le code de la classe pour en déduire toutes les autres classes dont elle dépend ?
    Dans ce cas je ne connais pas la solution. Dans quel cadre veux tu faire ça ?
    Concernant l'introspection, garde en tête qu'il faut l'utiliser avec parcimonie à la fois pour des raisons de performances et de lisibilité.

  11. #11
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 48
    Points : 38
    Points
    38
    Par défaut
    Citation Envoyé par Mens Pervincet Voir le message
    Dans quel cadre veux tu faire ça ?
    C'est pas la bonne rubrique pour parler de ça, mais vue que tu demandes je te réponds:
    Je veux décrire une interface gwt dans un fichier xml c'est à dire avoir son squelette. J'ai pas trouvé de solution direct, j'ai cherché partout mais j'ai pas eu ce que je cherche vue qu'on parle toujours de la sérialisation des objets métier et non des interface graphique (je parle côté gwt).
    Mon idée donc et de déterminer les dépendances dans une interface et d'essayer de les organiser pour avoir mon fichier XML.

  12. #12
    Membre chevronné
    Inscrit en
    Mai 2006
    Messages
    1 364
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 1 364
    Points : 1 984
    Points
    1 984
    Par défaut
    Et en analysant le bytecode ?

  13. #13
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 48
    Points : 38
    Points
    38
    Par défaut
    L'introspection repose sur ce principe, sauf que comme j'ai dit plut haut ca ne permet pas (d'aprés mes recherches et le tuto mentionné par Mens Pervincet) d'extraire les attributs internes à une méthode.

  14. #14
    Membre chevronné
    Inscrit en
    Mai 2006
    Messages
    1 364
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 1 364
    Points : 1 984
    Points
    1 984
    Par défaut
    Je viens de verifier et en ouvrant le fichier .class, on trouve bien les classes utilisées dans les fonctions.

    Apres, en utilisant par exemple ASM, ca devrait etre possible de lister les classes utilisées...

Discussions similaires

  1. Description des classes et méthodes
    Par Ptit_bouchon dans le forum Débuter
    Réponses: 1
    Dernier message: 08/02/2008, 13h23
  2. Pattern singleton ou Classe avec méthodes statiques ?
    Par Claythest dans le forum Langage
    Réponses: 3
    Dernier message: 11/12/2006, 11h28
  3. Classe et méthode Javascript
    Par Gunn_ dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 11/07/2006, 13h10
  4. Pointeurs de classes et méthodes
    Par insomniak dans le forum C++
    Réponses: 9
    Dernier message: 10/05/2006, 15h18
  5. Déclaration de classes et méthodes externes
    Par rulianf dans le forum C++
    Réponses: 6
    Dernier message: 15/09/2005, 15h26

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