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 :

Lister les imports d'une classe


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert
    Avatar de Loceka
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    2 276
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 2 276
    Par défaut Lister les imports d'une classe
    Bonjour,

    Je voudrais savoir comment (oui, pas "si c'est possible", je suis optimiste) lister les packages/classes importés dans une classe.

    Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    import java.io.*;
    import java.net.Url;
     
    public class Test {}
    La liste des packages est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    import java.io.*;
    import java.net.Url;
    J'ai cherché du côté de Class, de ClassLoader et de Package sans succès

    Merci d'avance,
    Loceka.

  2. #2
    Membre émérite Avatar de noOneIsInnocent
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    1 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 037
    Par défaut
    Bonjour
    il me semble qu'avec le principe de reflection on peut trouver ce genre d'information. A vérifier.

    http://java.sun.com/developer/techni...LT/Reflection/

  3. #3
    Modérateur

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 586
    Par défaut
    Ben non, la réflectivité suffit pas. C'est pas parce qu'une classe est importée qu'elle apparaît dans les signatures exposées de la classe qui s'en sert.

    Une possibilité, à la rigueur, serait de récupérer le bytecode compilé de la classe, puis de l'analyser pour voir ses dépendances de liens avec d'autres classes qui ne sont pas de son package.
    Je saurais pas ni la première, ni la deuxième, étape de manière fiable.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  4. #4
    Membre Expert
    Avatar de Loceka
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    2 276
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 2 276
    Par défaut
    Oui, je pense que ça doit être possible avec le bytecode (d'ailleur les décompilateurs y arrivent) mais si je peux me passer de faire ça, ça m'arrangerait. Parce qu'à moins de me prendre la tête avec le code d'un décompilateur pour voir comment il fait, je n'ai aucune idée de par où commencer...

  5. #5
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 483
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 483
    Par défaut
    sauf que les décompilateur ne te sortent que ce qui a été compilé, qui peut etre loin des imports qu'a tappé le codeur.

  6. #6
    Membre chevronné Avatar de Mobius
    Profil pro
    none
    Inscrit en
    Avril 2005
    Messages
    463
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : none

    Informations forums :
    Inscription : Avril 2005
    Messages : 463
    Par défaut
    Les imports ne font pas partie du bytecode. Les imports correspondent à une aide syntaxique pour faciliter la vie des développeurs.
    On peut voir les imports comme un raccourcis d'écriture pour l'ensemble des classes utilisé dans le code.
    A partir du bytecode (ou à l'execution), il n'est donc pas possible d'avoir la liste des imports telle qu'elle à été écrite dans le code source.
    Il est en revanche possible (en faisant une analyse syntaxique), d'avoir la liste des classes utilisées dans le code et donc de produire une liste d'import qui aurait pu être écrit.

Discussions similaires

  1. For-in pour lister les proprietes d'une classe
    Par mihaispr dans le forum ActionScript 1 & ActionScript 2
    Réponses: 1
    Dernier message: 08/09/2009, 18h44
  2. [POO] Lister les membres d'une classe
    Par Asmodean dans le forum Langage
    Réponses: 2
    Dernier message: 11/05/2007, 12h28
  3. Lister les imports d'un .class
    Par otsgd dans le forum Langage
    Réponses: 3
    Dernier message: 23/10/2006, 17h01
  4. [VB.NET]Reflexion lister les membres d'une classe ...presque
    Par lucie.houel dans le forum ASP.NET
    Réponses: 19
    Dernier message: 20/09/2005, 14h49

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