docs: public Object invoke(T target, Object... args) throws InvocationTargetException {
      Method m = getMethod(target.getClass());
      if (m == null) {
        throw new AssertionError("Method " + methodName + " not supported for object " + target);
      }
      try {
        return m.invoke(target, args);
      } catch (IllegalAccessException e) {
        // Method should be public: we checked.
        AssertionError error = new AssertionError("Unexpectedly could not call: " + m);
        error.initCause(e);
        throw error;
      }
    }