Get all methods of a class.
//package org.nestframework.utils; import java.beans.BeanInfo; import java.beans.IntrospectionException; import java.beans.Introspector; import java.beans.PropertyDescriptor; import java.io.BufferedReader; import java.io.File; import java.io.IOException; import java.io.Reader; import java.lang.annotation.Annotation; import java.lang.reflect.Field; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import java.lang.reflect.Modifier; import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Properties; /** * Nest utility class. * * @author audin * */ public class NestUtil { /** * Get all methods of a class. * * @param clazz The class. * @return All methods of a class. */ public static Collection<Method> getMethods(Class<?> clazz) { // if (log.isDebugEnabled()) { // log.debug("getMethods(Class<?>) - start"); // } Collection<Method> found = new ArrayList<Method>(); while (clazz != null) { for (Method m1 : clazz.getDeclaredMethods()) { boolean overridden = false; for (Method m2 : found) { if (m2.getName().equals(m1.getName()) && Arrays.deepEquals(m1.getParameterTypes(), m2 .getParameterTypes())) { overridden = true; break; } } if (!overridden) found.add(m1); } clazz = clazz.getSuperclass(); } //if (log.isDebugEnabled()) { // log.debug("getMethods(Class<?>) - end"); // } return found; } }