src/org/nutz/mvc/adaptor/AbstractAdaptor.java
protected ParamInjector paramNameInject(Method method, int index) {
        if (!Lang.isAndroid) {
            String paramName = getParamRealName(index);
            if (paramName != null) {
                Class<?> type = argTypes[index];
                if (type.isArray()) {
                    return new ArrayInjector(paramName,
                            null,
                            type,
                            null,
                            null,
                            true);
                }
                if (Modifier.isInterface(type.getModifiers()))
                    return new VoidInjector();
                return new NameInjector(paramName,
                        null,
                        argTypes[index],
                        null, null);
            }
            else if (log.isInfoEnabled())
                log.infof("Complie without debug info? can't deduce param name. fail back to PathArgInjector!! index=%d > %s",
                          index,
                          method);
    	}

        return new PathArgInjector(method.getParameterTypes()[index]);
    }
protected ParamInjector paramNameInject(Method method, int index) {
        if (!Lang.isAndroid) {
            String paramName = getParamRealName(index);
            if (paramName != null) {
                Class<?> type = argTypes[index];
                if (type.isArray()) {
                    return new ArrayInjector(paramName,
                            null,
                            type,
                            null,
                            null,
                            true);
                }
                if (Modifier.isInterface(type.getModifiers()))
                    return new VoidInjector();
                return new NameInjector(paramName,
                        null,
                        argTypes[index],
                        null, null);
            }
            else if (log.isInfoEnabled())
                log.infof("Complie without debug info? can't deduce param name. fail back to PathArgInjector!! index=%d > %s",
                          index,
                          method);
    	}

        return new PathArgInjector(method.getParameterTypes()[index]);
    }
这是最后的大招了,查一下形参的名字,作为@Param("形参名")进行处理