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 :

Lister toutes les classes filles


Sujet :

Java

  1. #1
    Expert confirmé
    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
    Points : 4 842
    Points
    4 842
    Par défaut Lister toutes les classes filles
    Bonjour,

    Je souhaiterais lister toutes les classes filles d'une classe quelconque ou toute les classes implémentant une interface quelconque.

    Exemple :
    Code Java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    public classe SuperClasse {}
    public interface Interface{}
     
    public classe Fille extends SuperClasse{}
     
    public classe Fille2 extends SuperClasse implements Interface{}
     
    public classe Fille3 implements Interface{}

    Dans cet exemple je pourrais récupérer toutes les classes héritant de SuperClasse, donc Fille et Fille2.
    Je pourrais aussi récupérer toutes les classes implémentant Interface, donc Fille2 et Fille3.

    J'ai regardé du côté de class.getClasses() mais c'est pas trop ça...

    Sinon je peux toujours coder un truc moche qui va lire toutes les classes de toute une arborescence et voir si elles héritent de SuperClasse ou si elles implémentent Interface, mais c'est un peu lourd...

    Donc si vous connaissez une façon de faire qui soit plus jolie, vous êtes les bienvenus !

    Merci d'avance,
    Loceka.

  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 : 43
    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
    Dans le sens descendant, tu n'as pas beaucoup de choix. Une possibilité serait de parcourir un jar (ou arborescence quelconque), loader chaque classe et vérifier la classe mère et les interfaces, puis faire du récursif sur la classe mère et les interfaces.
    Pense à stocker les classes et interfaces déjà analysées pour ne pas recommencer.

  3. #3
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Salut,


    Mais c'est super lourd et pas très propre...

    Pourrait-on savoir quel est l'objectif final de tout cela ???


    a++

  4. #4
    Expert confirmé
    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
    Points : 4 842
    Points
    4 842
    Par défaut
    Eh bien l'objectif de tout cela serait de faire un affichage dynamique de toutes les classes héritant d'une certaine classe.

    En gros, dans mon IHM j'aurais une boucle sur l'ensemble des classes récupérées dynamiquement et, en fonction de leur package je les place dans tel ou tel onglet puis j'affiche un libellé pour chacune des classes selon ce que je récupère par l'appel d'une méthode "getName()". Lorsque l'utilisateur rentre une valeur dans le champs correspondant, j'affecte la valeur à l'instance via "setValue()".

    En fait ça permet surtout de ne pas retoucher à l'IHM à chaque fois qu'on rajoute une classe nécessitant un affichage : il suffirait qu'elle hérite de la superclasse pour qu'elle soit automatiquement ajoutée à l'IHM.

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

Discussions similaires

  1. Comment lister toutes les classes annotées ?
    Par verbose dans le forum Général Java
    Réponses: 16
    Dernier message: 03/05/2011, 00h38
  2. Lister toutes les sous-classes d'un classe mère
    Par Kerod dans le forum Langage
    Réponses: 10
    Dernier message: 09/02/2009, 19h21
  3. [D7][Infos système] Comment lister toutes les classes WMI ?
    Par phplive dans le forum API, COM et SDKs
    Réponses: 2
    Dernier message: 03/05/2006, 23h51
  4. [firebird 1.5] lister toutes les tables
    Par c0rwyn dans le forum SQL
    Réponses: 2
    Dernier message: 02/09/2004, 14h36
  5. Réponses: 8
    Dernier message: 17/10/2002, 12h52

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