code: public <T> T invoke(Object receiver, CreationalContext<T> creationalContext, ParameterValueRedefiner redefinition) {
          List<Object> parameterValues = new ArrayList<Object>();
          for (int i = 0; i < getParameters().size(); i++) {
              if (redefinition != null) {
                  ParameterValueRedefiner.ParameterValue value = new ParameterValueRedefiner.ParameterValue(i, getParameters().get(i), getBeanManager());
                  parameterValues.add(redefinition.redefineParameterValue(value));
              } else {
                  parameterValues.add(getBeanManager().getInjectableReference(getParameters().get(i), creationalContext));
              }
          }
  
          @SuppressWarnings("unchecked")
          T result = (T) Reflections.invokeMethod(true, method.getJavaMember(), receiver, parameterValues.toArray(Reflections.EMPTY_OBJECT_ARRAY));
  
          return result;
      }
docs: Invoke the method, calling the parameter redefiner for each parameter,
  allowing the caller to override the default value obtained via the CDI
  type safe resolver.
  
  @param <T>               the return type of the method
  @param receiver          the instance upon which to call the method
  @param creationalContext the creational context to use to obtain
  injectable references for each parameter
  @return the result of invoking the method or null if the method's return
  type is void
  @throws RuntimeException            if this <code>Method</code> object enforces Java
  language access control and the underlying method is
  inaccessible or if the underlying method throws an exception or
  if the initialization provoked by this method fails.
  @throws IllegalArgumentException    if the method is an instance method and
  the specified <code>receiver</code> argument is not an instance
  of the class or interface declaring the underlying method (or
  of a subclass or implementor thereof); if an unwrapping
  conversion for primitive arguments fails; or if, after possible
  unwrapping, a parameter value cannot be converted to the
  corresponding formal parameter type by a method invocation
  conversion.
  @throws NullPointerException        if the specified <code>receiver</code> is
  null and the method is an instance method.
  @throws ExceptionInInitializerError if the initialization provoked by this
  method fails.