我使用 IntelliJ IDEA 15.0.4 开发 Java Play! 2.4.4 应用程序。由于几个月(我认为这是因为IntelliJ更新,但不是100%确定),出现了以下问题:
每当我从将 String 作为参数的控制器调用反向路由时,该参数都会显示为错误,并显示以下消息:
方法名称(字符串)在 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
该方法将突出显示错误,如下所示。
我已经尝试摆弄项目结构设置并搜索Google,但无济于事。我希望有人能够帮助我解决这个问题,我的强迫症自我真的很感激有一个没有错误提示的代码库再次;)
答案并不能解决问题,这就是我回答这个老问题的原因。
我在Play 2.5.4
和InteliJ 2016.1.3
上遇到了同样的问题
我从路由文件中的路由声明中删除了类型 ( String
),InteliJ 停止将其突出显示为错误。
更改以下内容:
GET /path/:string_arg controllers.MyController.myMethod(string_arg: String)
自
GET /path/:string_arg controllers.MyController.myMethod(string_arg)
它工作正常。
是的,我遇到了与您所说的相同的问题。我认为这是IDEA 15.0.4的错误,您是否尝试过更改为15.0.4之前的旧版本?