public static void forEachMethod(final Object object, Class<?> clazz, final Class<? extends Annotation> annotation,
                                     final MethodAction action) {
        forEachSuperClass(clazz, clazzAction -> {
            for ( Method method : clazzAction.getDeclaredMethods() ) {
                if ( method.isAnnotationPresent(annotation) ) {
                    action.act(object, method);
                }
            }
        });
    }
Iterates over all methods of the given class and all its super classes
and calls action.act() for the methods that are annotated with the given annotation.
jgiven-core/src/main/java/com/tngtech/jgiven/impl/util/ReflectionUtil.java