begin process at 2010 03 21 14:12:05
  Trouver un code source :
 
dans
 
Accueil > Forum > 

JAVA / J2EE / J2ME

 > 

Divers

 > 

Général

 > 

Lister les sous classes d'une classe


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Lister les sous classes d'une classe

vendredi 16 janvier 2009 à 11:36:22 | Lister les sous classes d'une classe

CrazyCodeur

Bonjour,

Je cherche à lister les sous classes d'une classe. Est ce possible?

Quelques informations :
  • toutes ces classes (classe mère et classes filles) appartiennent au même package
  • la classe mère est une classe abstraite
Merci d'avance :)
vendredi 16 janvier 2009 à 23:18:00 | Re : Lister les sous classes d'une classe

Chatbour

Membre Club
Salut,

ça s'appelle de l'introspection ou la réflexion..

voici un code qui répond à ce que tu cherches :

Class myClass = Class.forName("javax.swing.JButton");
for(Class c : myClass.getClasses()) {
     System.out.println(c.getCanonicalName());
}


Cordialement..
dimanche 18 janvier 2009 à 14:55:27 | Re : Lister les sous classes d'une classe

CrazyCodeur

Salut, merci pour cette première réponse, mais je n'arrive toujours pas à faire ce que je veux (aucune sous classes trouvées... )
Je te donne quelques informations sur mon programme :
 
J'ai une classe P qui possède une map de C :

public abstract class P extends ...
{
    private HashMap<String, C> c;
}
Et ce que je veux, c'est que dans le constructeur, je remplisse ma map avec autant d'éléments qu'il existe de Caracteristiques.

Ma classe C est définie ainsi :
public class Caracteristique { ... }

Et voici l'exemple de deux sous classes de C :
public class C1 extends C{...}
public class C2 extends C{...}

Au final, dans la map de la classe P, je souhaite qu'il y ait C1 et C2


Si tu penses à quelque chose, je suis preneur !!

Merci d'avance.
dimanche 18 janvier 2009 à 15:55:57 | Re : Lister les sous classes d'une classe

Chatbour

Membre Club
ah ok : moi je pensais que tu cherchais à déterminer les classes privées déclarées au sein d'une classe donnée..

pour ce que tu cherches, je ne pense pas qu'il existe une méthode toute prête qui te fournit les classes qui étendent une classe donnée. Mais tu peux te débrouiller en utilisant la méthode getSuperClass() de la classe Class en faisant comme suit :

public boolean doExtends(Class a, Class b) {
   return a.getSuperClass().getCanonicalName().equals(b.getCanonicalName());
}


par la suite, tu peux utiliser cette méthode pour parcourir un ensemble de classes candidates et vérifier..

pourvu que ça aide..
dimanche 18 janvier 2009 à 17:23:36 | Re : Lister les sous classes d'une classe

CrazyCodeur

Merci pour cette idée. J'ai modifié ta fonction pour quelle parcours une liste de classe que l'on passe en paramètres :

    public static ArrayList<Class> getSousClasses(ArrayList<Class> sousClasses, Class superClasse) {
        ArrayList<Class> listeSousClasses= new ArrayList<Class>();
        for (Iterator iterator = sousClasses.iterator(); iterator
                .hasNext();)
        {
                  Class class1 = (Class) iterator.next();
                  if(class1.getSuperclass().getCanonicalName().equals(superClasse.getCanonicalName()))
                         listeSousClasses.add(class1);
        }
        return listeSousClasses;
    }
Maintenant, j'essaie de construire dynamiquement la liste des sous classes....


Cette discussion est classée dans : mère, lister, classe, classes


Répondre à ce message

Sujets en rapport avec ce message

Interdépendance entre classes [ par Sbutb ] Bonjour,Voilà j'ai écrit un programme Java, et j'ai des problèmes de relations entre classes.J'ai une classe mère (avec le main) qui crée des objets d pb d'accès sur un objet depuis deux classes différentes.. [ par Lestat64 ] Bonjour;Quelqu'un pourrait-il me dire comment est-ce que je peux accéder aux méthodes et variables d'une seule et même instance de classe à partir de appeler des classes existantes [ par afura2004 ] Salut tout le monde,J'ai un petit problème par rapport à mon projet. J'ai créé des classes et je veux appeler les classes à partir d'une autre classe. un aide pour les classes!! [ par afura2004 ] Salut tout le monde,J'ai un petit problème par rapport à mon projet. J'ai créé des classes et je veux appeler les classes à partir d'une autre classe. par rapport aux classes! [ par afura2004 ] Salut tout le monde,J'ai un petit problème par rapport à mon projet. J'ai créé des classes et je veux appeler les classes à partir d'une autre classe. communication entre 2 classes avec this [ par sparetime ] bonsoirje veux faire communiquer deux classes indépendantes de sorte que j'ai une variable dans la premiere classe sur laquelle je fais un calcul et Faire dialoguer des classes entre elles [ par inquisitor87 ] Bonjour à tous et à toutes. Je suis complètement perdu sur un point crucial pour mon projet actuel : j'ai une classe mère, qui possède deux classes d machin et Jmachin [ par alonsyl ] bonjour,je suis en train d'apprendre java et je rencontre frequemment lors ma visite de sites specialises la classe "JComponent".quel est le distingo le problème de package et c'est urgent s'il vous plait. [ par aliomar ] Salut, j'ai un problème avec java en ce qui concerne les packages, le problème vient de quand je fais la compilation d'une classe java, en fait ce cl euh ... méthodes/attributs de 2 classes [ par HFanny ] Bonjour à tous,j'ai une question bête (car je sais que j'ai déjà fait mais je ne me souviens plus comment) :J'ai 2 classes A et B, dans A je crée une


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mars 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,281 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales