code: public static Object invokeNoArgMethod(Object obj, String methodName) {
      try {
        return obj.getClass().getMethod(methodName).invoke(obj);
      } catch (NoSuchMethodException
          | SecurityException
          | IllegalAccessException
          | IllegalArgumentException e) {
        throw new RateLimiterReflectionException(
            "Failed to reflect method \"" + methodName + "\" on object: " + obj, e);
      } catch (InvocationTargetException e) {
        throw new RateLimiterException(
            "Failed to invoke method \"" + methodName + "\" on object: " + obj, e);
      }
    }
docs: Invoke the specified method (with no argument) on the object.
  
  @param obj the object to call.
  @param methodName the name of the method (with no argument)
  @return the returned object from the invocation.
  @throws RateLimiterException that wraps any exception during reflection