code: public MemberSubstitution replaceWith(MethodDescription methodDescription) {
              if (!methodDescription.isMethod()) {
                  throw new IllegalArgumentException("Cannot use " + methodDescription + " as a replacement");
              }
              return replaceWith(new Substitution.ForMethodInvocation.OfGivenMethod(methodDescription));
          }
docs: <p>
  Replaces any interaction with a matched byte code element by an invocation of the specified method. If a method
  is replacing a field access, it is treated as if it was replacing an invocation of the field's getter or setter respectively.
  </p>
  <p>
  A replacement can only be applied if the method is compatible to the original byte code element, i.e. consumes compatible
  arguments and returns a compatible value. If the method is not {@code static}, it is treated as if {@code this} was an implicit
  first argument.
  </p>
  <p>
  <b>Important</b>: It is not allowed to specify a constructor or the static type initializer as a replacement.
  </p>
  
  @param methodDescription The method to invoke instead of interacting with any of the matched byte code elements.
  @return A member substitution that replaces any matched byte code element with an invocation of the specified method.