docs: @Override
  	public Object invokeMethod(Object... args) {
  		Assert.state(this.parameterTypes.length == args.length,
  				"Wrong number of arguments, expected no more than: ["
  						+ this.parameterTypes.length + "]");
  
  		try {
  			// Extract the target from an Advised as late as possible
  			// in case it contains a lazy initialization
  			Object target = extractTarget(this.object, this.method);
  			return method.invoke(target, args);
  		}
  		catch (Exception e) {
  			throw new IllegalArgumentException("Unable to invoke method: [" + this.method
  					+ "] on object: [" + this.object + "] with arguments: ["
  					+ Arrays.toString(args) + "]", e);
  		}
  	}