3

我使用 IntelliJ IDEA 15.0.4 开发了一个 Java Play!2.4.4 应用。几个月以来(我认为这是因为 IntelliJ 更新,但不是 100% 肯定),出现了以下问题:

每当我从将字符串作为参数的控制器调用反向路由时,该参数将显示为错误并显示以下消息:

ReverseMyController 中的方法名(字符串)不能应用于(java.lang.String)

这是一个代码示例:

public Result myAction(String myId) {
    // Do something...

    // Redirect back to referrer
    flash("success", "Action was a success");
    if(!myId.isEmpty()) return redirect(controllers.routes.MyController.showItem(myId));
    return redirect(controllers.routes.MyController.itemList(1));
}

在此示例中,myId传递给方法的参数showItem将错误突出显示,如下所示。

我已经尝试摆弄项目结构设置并搜索谷歌,但无济于事。我希望有人能帮我解决这个问题,我的强迫症患者真的很感激拥有一个没有错误提示的代码库;)

4

2 回答 2

4

接受的答案并不能解决问题,这就是我回答这个老问题的原因。

我对Play 2.5.4InteliJ有同样的问题 2016.1.3

String我从路由文件中的路由声明中删除了类型 ( ),并且InteliJ停止将其突出显示为错误。

更改以下内容:

GET /path/:string_arg controllers.MyController.myMethod(string_arg: String)

GET /path/:string_arg controllers.MyController.myMethod(string_arg)

它工作正常。

于 2016-09-07T11:41:56.437 回答
3

是的,我遇到了和你说的一样的问题。我觉得是IDEA 15.0.4的bug,你有没有试过换成15.0.4之前的老版本?

于 2016-03-14T08:24:23.777 回答