@NotNull
  public static List<Method> collectMethods(@NotNull Class<?> clazz) {
    List<Method> result = new ArrayList<>();
    collectMethods(clazz, result);
    return result;
  }
@NotNull
  public static List<Method> collectMethods(@NotNull Class<?> clazz)