class ReflectionUtil {

    public static <T, A extends Annotation> List<A> findAllMethodAnnotation(Class<T> clazz, Class<A> annotationType) {
        if (clazz == null || annotationType == null) {
            return null;
        }

        List<A> annotations = CollectionUtil.createArrayList();
        Method[] methods = getAllMethodsOfClass(clazz);

        for (Method method : methods) {
            A annotation = method.getAnnotation(annotationType);
            if (annotation != null) {
                annotations.add(annotation);
            }
        }

        return annotations;
    }

}