docs: private static boolean areMethodNameAndParameterTypesEqual(Method methodA, Method methodB) {
          if (!methodA.getName().equals(methodB.getName())) {
              return false;
          }
          Class<?>[] methodAParameterTypes = methodA.getParameterTypes();
          Class<?>[] methodBParameterTypes = methodB.getParameterTypes();
          if (methodAParameterTypes.length != methodBParameterTypes.length) {
              return false;
          }
          for (int i = 0; i < methodAParameterTypes.length; i++) {
              if (!methodAParameterTypes[i].equals(methodBParameterTypes[i])) {
                  return false;
              }
          }
  
          return true;
      }