code: public Reflect invoke(String methodName, Object... args) throws ReflectionException {
        Class[] types = ReflectionUtils.getTypes(args);
        try {
           return on(clazz.getMethod(methodName, types), object, accessAll, args);
        } catch (NoSuchMethodException e) {
           Method method = ReflectionUtils.bestMatchingMethod(getMethods(), methodName, types);
           if (method != null) {
              return on(method, object, accessAll, args);
           }
           throw new ReflectionException(e);
        }
  
     }
docs: Invokes a method with a given name and arguments with the most specific method possible
  
  @param methodName The name of the method
  @param args       The arguments to the method
  @return A Reflect object representing the results
  @throws ReflectionException Something went wrong invoking the method