code: private static Map<String, Method> getAllMethod(Class<?> clazz, Map<String, Method> methods) {
          if (clazz == null || clazz == Object.class) {
              return methods;
          }
  
          Arrays.stream(clazz.getDeclaredMethods()).forEach(method -> {
              String key = String.format("%s:%s", method.getName(),
                  ByteCodeUtils.getMethodDesc(method));
              Method m = methods.get(key);
              if (m == null || (m.getDeclaringClass().isInterface()
                                && !method.getDeclaringClass().isInterface())) {
                  methods.put(key, method);
              }
          });
  
          Arrays.stream(clazz.getInterfaces()).forEach(c -> getAllMethod(c, methods));
  
          return getAllMethod(clazz.getSuperclass(), methods);
      }
docs: 获取指定类的所有方法（不包含接口方法）
  @param clazz Class类型
  @param methods 方法集合
  @return 方法集合