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 :

Liste des implémentations d'une interface


Sujet :

Langage Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 57
    Points : 44
    Points
    44
    Par défaut Liste des implémentations d'une interface
    Bonjour tout le monde,
    J'ai un projet avec différents packages et différentes classes. Dans ce projet, j'ai des interfaces.

    Est - il possible à l'aide d'une méthode de savoir les classes implémentant l'interface passée en paramètre de la méthode?
    Merci
    Yoko

  2. #2
    Membre régulier
    Profil pro
    Abcde
    Inscrit en
    Août 2004
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Abcde
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Août 2004
    Messages : 59
    Points : 79
    Points
    79
    Par défaut
    Citation Envoyé par YokoSop
    Bonjour tout le monde,
    J'ai un projet avec différents packages et différentes classes. Dans ce projet, j'ai des interfaces.

    Est - il possible à l'aide d'une méthode de savoir les classes implémentant l'interface passée en paramètre de la méthode?
    Merci
    Yoko
    précise le besoin...

    @+

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 57
    Points : 44
    Points
    44
    Par défaut
    Je donne en paramètre de ma fonction un nom d'interface.
    Elle parcourt mon projet et me liste les classes implémentant celle - ci.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Class c[] = Enfant.class.getInterfaces();
    		System.out.println("Enfant : " + c[0].getName());

    Le besoin en tant que tel est qu'à partir de l'interface (par exemple d'un moteur de workFlow), on va savoir en parcourant l'application, si il peut utiliser tel ou tel moteur de workFlow... Je sais pas si c ckler, mais en tout cas, c'est pas le plus important.

    Par contre, je sais afficher le nom de l'interface d'une classe... Mais existe - t il une méthode a appelé sur mon objet projet permettant de lister les interfaces présentes, les classes utilisant une interface donnée...?

    Si je peux éviter de parcourir fichier de mon Projet, ça serait bien... Maintenant si fo faire bourrin, je peux faire bourrin
    Yoko,

  4. #4
    Membre régulier
    Profil pro
    Abcde
    Inscrit en
    Août 2004
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Abcde
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Août 2004
    Messages : 59
    Points : 79
    Points
    79
    Par défaut
    Citation Envoyé par YokoSop
    Je donne en paramètre de ma fonction un nom d'interface.
    Elle parcourt mon projet et me liste les classes implémentant celle - ci.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Class c[] = Enfant.class.getInterfaces();
    		System.out.println("Enfant : " + c[0].getName());

    Le besoin en tant que tel est qu'à partir de l'interface (par exemple d'un moteur de workFlow), on va savoir en parcourant l'application, si il peut utiliser tel ou tel moteur de workFlow... Je sais pas si c ckler, mais en tout cas, c'est pas le plus important.

    Par contre, je sais afficher le nom de l'interface d'une classe... Mais existe - t il une méthode a appelé sur mon objet projet permettant de lister les interfaces présentes, les classes utilisant une interface donnée...?

    Si je peux éviter de parcourir fichier de mon Projet, ça serait bien... Maintenant si fo faire bourrin, je peux faire bourrin
    Yoko,
    pour répondre court : non
    si tu ressens le besoin de faire ca, ya sans doute un probleme de conception.
    Il faut trouver une autre facon de faire

    @+

  5. #5
    Membre éprouvé
    Profil pro
    Architecte technique
    Inscrit en
    Mars 2002
    Messages
    966
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Mars 2002
    Messages : 966
    Points : 1 085
    Points
    1 085
    Par défaut
    Citation Envoyé par YokoSop
    Est - il possible à l'aide d'une méthode de savoir les classes implémentant l'interface passée en paramètre de la méthode?
    Mais quel est l'intérêt d'un telle chose ? Un interface justement permet de voir une classe de façon générique, pour avoir besoin des différentes implémentations ?

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 57
    Points : 44
    Points
    44
    Par défaut
    De savoir si l'application développé supporte quel type de WorkfloW..(en tout cas dans mon cas).
    Si l'interface cible est implémenté par une classe, alors je propose à mon application client les workflow implémentés..

  7. #7
    Membre éprouvé
    Profil pro
    Architecte technique
    Inscrit en
    Mars 2002
    Messages
    966
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Mars 2002
    Messages : 966
    Points : 1 085
    Points
    1 085
    Par défaut
    J'ai rien compris...

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 57
    Points : 44
    Points
    44
    Par défaut
    concrètement on analyse le code de l'application, puis à partir des interfaces qui sont implémentées... Ensuite, on en déduit ce qui est implémenté...
    tu comprend là?

  9. #9
    Membre éprouvé
    Profil pro
    Architecte technique
    Inscrit en
    Mars 2002
    Messages
    966
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Mars 2002
    Messages : 966
    Points : 1 085
    Points
    1 085
    Par défaut
    Oui mais quel est l'intérêt.

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 57
    Points : 44
    Points
    44
    Par défaut
    Tu ve que je te donne le contact de mon supérieur...
    lool
    Il me demande de faire ça, alors je regarde... Bon je tavoue que je suis pas non plus convaincu.. c pour ça que jai du mal à me défendre...
    J'essaye juste de savoir, s'il y a un moyen technik de le faire?
    Merci

  11. #11
    Membre éprouvé
    Profil pro
    Architecte technique
    Inscrit en
    Mars 2002
    Messages
    966
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Mars 2002
    Messages : 966
    Points : 1 085
    Points
    1 085
    Par défaut
    Non il n'y a aucun mmoyen technique de faire ça.

    Tu connais de façon exaustive toutes les implémentations ?

  12. #12
    Membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 57
    Points : 44
    Points
    44
    Par défaut
    ba jme suis créé un proto avec des classes:
    - Femme
    - Homme
    - Enfant
    Elle implémente l'interface IErtre ...
    Puis voila,
    t'en veux plus?

  13. #13
    Membre éclairé
    Avatar de divxdede
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    525
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2004
    Messages : 525
    Points : 844
    Points
    844
    Par défaut
    C'est un mécanisme de "hot plug"

    Il a une interface qui décrit un module de facon générique.
    Son application peut embarquer plusieurs implémentation de ce module (classe dérivant de l'interface).

    l'application doit proposer a l'utilisateur les differentes implémentations afin qu'il puisse choisir celle qu'il va utiliser (par exemple).

    Il doit donc pouvoir analyser son "classpath" afin de determiner toutes les importations accessibles.

    Alors coté solutions, il faut éviter d'analyser tout le classpath de ton application , donc l'objectif et de savoir limiter la casse.

    1) Package chaque implémentation dans un conteneur jar, ajoute par exemple dans un fichier xml, texte, meta-inf le nom de la classe representant l'implementation.
    2) Impose un module-repository pour ton application (genre ./modules/)
    3) au démarrage de l'application, liste les fichiers jar présents dans ton module-repository, ajoutes les aux classpath de l'application (http://java.developpez.com/sources/?...ivers#Invoker), lit le fichier de conf de l'archive et mémorise la liste des implémentations par exemple dans un Manager (en singleton pattern)

    Ca évite ainsi a ton application d'effectuer des recherches laborieuse par introspection.

Discussions similaires

  1. Obtenir la liste des tables d'une table
    Par Pigoulou dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 09/02/2005, 14h12
  2. Obtenir le listing des tables d'une BDD
    Par zoubidaman dans le forum Outils
    Réponses: 1
    Dernier message: 10/11/2004, 00h17
  3. liste des tables d'une BDD
    Par 120 dans le forum ASP
    Réponses: 4
    Dernier message: 21/06/2004, 14h06
  4. Liste des tables d'une bases de données spécifique
    Par faridos23 dans le forum Requêtes
    Réponses: 3
    Dernier message: 26/08/2003, 22h20
  5. Comment obtenir la liste des paramètres d'une SP ?
    Par Le Gritche dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 14/03/2003, 16h54

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