public Object[] decode(Method targetMethod, String paramsToken, Map<String, Mapper> mappers) throws MapperNotFoundException { if (paramsToken == null || paramsToken.trim().length() < 1) { return null; } else { String rawParams[] = paramsToken.trim().split(TcpRestProtocol.PATH_SEPERATOR); List<Object> paramsHolder = new ArrayList<Object>(); int i = 0; for (String rawParam : rawParams) { String thisParam = decodeParam(rawParam); logger.debug("param types: " + targetMethod.getParameterTypes()[i]); Mapper mapper = getMapper(mappers, targetMethod.getParameterTypes()[i]); Object param = mapper.stringToObject(thisParam); if (thisParam.equals(TcpRestProtocol.NULL)) { param = null; } paramsHolder.add(param); i++; } return paramsHolder.toArray(); } }