protected Object[] prepareMethodArgs(Context context) { Parameter[] parameters = method.getParameters(); if (parameters.length == 0) { return new Object[]{}; } Object[] args = new Object[parameters.length]; for (int i = 0; i < args.length; i++) { Parameter parameter = parameters[i]; Class<?> type = parameter.getType(); ArgumentExtractor extractor = extractors[i]; Object value = extractor.extract(context); validateParameterValue(parameter, value); if (value == null || ClassUtil.isAssignable(value, type)) { args[i] = value; } else { String parameterName = ControllerUtil.getParameterName(parameter); throw new FathomException("Type for '{}' is actually '{}' but was specified as '{}'!", parameterName, value.getClass().getName(), type.getName()); } } return args; }
protected Object[] prepareMethodArgs(Context context) { Parameter[] parameters = method.getParameters(); if (parameters.length == 0) { return new Object[]{}; } Object[] args = new Object[parameters.length]; for (int i = 0; i < args.length; i++) { Parameter parameter = parameters[i]; Class<?> type = parameter.getType(); ArgumentExtractor extractor = extractors[i]; Object value = extractor.extract(context); validateParameterValue(parameter, value); if (value == null || ClassUtil.isAssignable(value, type)) { args[i] = value; } else { String parameterName = ControllerUtil.getParameterName(parameter); throw new FathomException("Type for '{}' is actually '{}' but was specified as '{}'!", parameterName, value.getClass().getName(), type.getName()); } } return args; }