CrazyCodeur
Messages postés24Date d'inscriptionmardi 10 janvier 2006StatutMembreDernière intervention18 janvier 2009
-
16 janv. 2009 à 11:36
CrazyCodeur
Messages postés24Date d'inscriptionmardi 10 janvier 2006StatutMembreDernière intervention18 janvier 2009
-
18 janv. 2009 à 17:23
Bonjour,
Je cherche à lister les sous classes d'une classe. Est ce possible?
Quelques informations :
<li>toutes ces classes (classe mère et classes filles) appartiennent au même package</li><li>la classe mère est une classe abstraite
</li>Merci d'avance :)
CrazyCodeur
Messages postés24Date d'inscriptionmardi 10 janvier 2006StatutMembreDernière intervention18 janvier 2009 18 janv. 2009 à 14:55
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
cs_Chatbour
Messages postés764Date d'inscriptionjeudi 27 juillet 2006StatutMembreDernière intervention 6 septembre 201018 18 janv. 2009 à 15:55
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..
CrazyCodeur
Messages postés24Date d'inscriptionmardi 10 janvier 2006StatutMembreDernière intervention18 janvier 2009 18 janv. 2009 à 17:23
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....