private static void getNonPrivateMethods(Class<?> clazz, final Map<String, List<Method>> methodMap) { while (clazz != null) { for (final Method method : clazz.getDeclaredMethods()) { if (method.isBridge()) { continue; } final int modifiers = method.getModifiers(); if (Modifier.isFinal(modifiers) || Modifier.isPrivate(modifiers) || Modifier.isStatic(modifiers)) { continue; } List<Method> methods = methodMap.get(method.getName()); if (methods == null) { methods = new ArrayList<Method>(); methods.add(method); methodMap.put(method.getName(), methods); } else { if (!isOverridden(methods, method)) { // method is not overridden, so add it methods.add(method); } // else method is overridden in superclass, so do nothing } } clazz = clazz.getSuperclass(); } }
private static void getNonPrivateMethods(Class<?> clazz, final Map<String, List<Method>> methodMap) { while (clazz != null) { for (final Method method : clazz.getDeclaredMethods()) { if (method.isBridge()) { continue; } final int modifiers = method.getModifiers(); if (Modifier.isFinal(modifiers) || Modifier.isPrivate(modifiers) || Modifier.isStatic(modifiers)) { continue; } List<Method> methods = methodMap.get(method.getName()); if (methods == null) { methods = new ArrayList<Method>(); methods.add(method); methodMap.put(method.getName(), methods); } else { if (!isOverridden(methods, method)) { // method is not overridden, so add it methods.add(method); } // else method is overridden in superclass, so do nothing } } clazz = clazz.getSuperclass(); } }