code: public static void forEachMethod( final Object object, Class<?> clazz, final Class<? extends Annotation> annotation,
              final MethodAction action ) {
          forEachSuperClass( clazz, new ClassAction() {
              @Override
              public void act( Class<?> clazz ) throws Exception {
                  for( Method method : clazz.getDeclaredMethods() ) {
                      if( method.isAnnotationPresent( annotation ) ) {
                          action.act( object, method );
                      }
                  }
              }
          } );
      }
docs: 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.