code: private synchronized Object invokeTarget(Object base, Object[] pars)
              throws Throwable {
          Reflect.logInvokeMethod("Invoking method (entry): ", this, pars);
          List<Object> params = collectParamaters(base, pars);
          Reflect.logInvokeMethod("Invoking method (after): ", this, params);
          if (getParameterCount() > 0)
              return getMethodHandle().invokeWithArguments(params);
          if (isStatic() || this instanceof ConstructorInvocable)
              return getMethodHandle().invoke();
          return getMethodHandle().invoke(params.get(0));
      }
docs: All purpose MethodHandle invoke implementation, with or without args.
  @param base represents the base object instance.
  @param pars parameter arguments
  @return invocation result
  @throws Throwable combined exceptions