Bonjour à tous,
je me tourne vers vous car je bloque sur un TP d'introspection et je n'arrive pas à comprendre pourquoi mon programme ne marche pas.
TP : Soit à développer un petit outil ( de génie) logiciel qui, pour une classe donnée, retourne la liste des méthodes héritées non redéfinies localement.
Si quelqu'un à une idée, j'aimerai beaucoup qu'il m'en fasse par (le formatage de la méthode est imposé).
Merci.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33 public static Set<Method> getHeritees(String nomDeLaClasse) throws ClassNotFoundException{ Class<?> classe = Class.forName(nomDeLaClasse); Class<?> superClasse = classe.getSuperclass(); Set<Method> set = new HashSet<Method>(); while(superClasse != null){ for(Method m : superClasse.getDeclaredMethods()){ if(Modifier.isPublic(m.getModifiers()) || Modifier.isProtected(m.getModifiers()) && !(Modifier.isAbstract(m.getModifiers()))){ set.add(m); } } superClasse = superClasse.getSuperclass(); } Iterator<Method> it = set.iterator(); while(it.hasNext()){ Method m = it.next(); for(Method method : classe.getDeclaredMethods()){ if(m.getName().equals(method.getName()) && m.getReturnType().equals(method.getReturnType())){ try{ classe.getDeclaredMethod(m.getName(), m.getParameterTypes()); it.remove(); } catch(Exception e){ } } } } return set; }
Partager