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;
} |