docs: public static Method findMethod(Class<?> clazz, String name, Class<?>... paramTypes) {
          AssertUtils.notNull(clazz, "Class must not be null");
          AssertUtils.notNull(name, "Method name must not be null");
          Class<?> searchType = clazz;
          while (searchType != null) {
              Method[] methods = (searchType.isInterface() ? searchType.getMethods() : searchType.getDeclaredMethods());
              for (Method method : methods) {
                  if (name.equals(method.getName()) &&
                          (paramTypes == null || Arrays.equals(paramTypes, method.getParameterTypes()))) {
                      return method;
                  }
              }
              searchType = searchType.getSuperclass();
          }
          return null;
      }