Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/351.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 限制NinjaFramework中控制器方法的参数数?_Java_Ninjaframework - Fatal编程技术网

Java 限制NinjaFramework中控制器方法的参数数?

Java 限制NinjaFramework中控制器方法的参数数?,java,ninjaframework,Java,Ninjaframework,我正在使用NinjaFramework 6.0,尝试将第10个@Param添加到我的控制器方法中,现在我在编译Routes.java时遇到“找不到合适的方法(控制器[…]索引)”错误 我的方法如下所示: public Result personIndex( @Param("ssn") Optional<String> ssn, @Param("dodId") Optional<String> dodId,

我正在使用NinjaFramework 6.0,尝试将第10个@Param添加到我的控制器方法中,现在我在编译Routes.java时遇到“找不到合适的方法(控制器[…]索引)”错误

我的方法如下所示:

public Result personIndex(
        @Param("ssn") Optional<String> ssn,             
        @Param("dodId") Optional<String> dodId,             
        @Param("firstName") Optional<String> firstName, 
        @Param("middleName") Optional<String> middleName, 
        @Param("lastName") Optional<String> lastName,
        @Param("birthday") Optional<String> birthday, 
        @Param("branch") Optional<String> branch, 
        @Param("rateRank") Optional<String> rateRank, 
        @Param("status") Optional<String> status, 
        @Param("page") Optional<Integer> page) { ... }
公共结果personIndex(
@参数(“ssn”)可选ssn,
@参数(“dodId”)可选的dodId,
@参数(“名字”)可选名字,
@参数(“中间名”)可选中间名,
@参数(“lastName”)可选lastName,
@参数(“生日”)可选生日,
@参数(“分支”)可选分支,
@参数(“rateRank”)可选rateRank,
@参数(“状态”)可选状态,
@参数(“页面”)可选页面){…}
如果我删除其中一个参数,那么一切都将编译并工作。这是一个硬限制吗?我应该把它们封装成某种形式/dto对象吗

--

使用这种类型的路由配置时,这似乎是一个问题:

router.GET().route(“/persons”).with(PersonController::personIndex)

如果我改用“旧”方式,效果会很好:

router.GET().route(“/persons”).with(PersonController.class,“personIndex”)

在浏览忍者文档()时,我注意到以下文字

类ninja.ControllerMethods定义了各种接口,这些接口是Java 8 lambda表达式可接受的方法签名。控制器方法返回一个ninja.Result,并具有0到12个参数。如果您需要12个以上的参数,您可以回退到Ninja遗留的类+“方法”路由策略

不确定是否从6.0版本更改了某些内容,但10个参数应该可以工作