繁体   English   中英

Intellij Scala无法识别运营商

[英]Intellij Scala not recognizing operators

我正在使用Play框架与Scala,使用IntelliJ IDEA社区13开发。我已经从终端运行Play; 一切正常。 但是,IntelliJ无法识别字符串上使用的某些运算符。

这是我的代码:

package controllers

import play.api.mvc._
import play.api.libs.json._

object Application extends Controller {

  def index = Action {
    Redirect(routes.Application.tasks)
  }

  def tasks = TODO

  def newTask = TODO

  def deleteTask(id: Long) = TODO

  def sayHello = Action(parse.json) { request =>
    (request.body \ "name").asOpt[String].map { name =>
      Ok(Json.toJson(
        Map("status" -> "OK", "message" -> ("Hello " + name)) // this line
      ))
    }.getOrElse {
      BadRequest("Missing parameter [name]")
    }
  }

}

它在Play中编译并运行良好。 但是,IntelliJ将+->运算符标记为无效,当我悬停时,给我一个“无法解析符号+

我知道这比其他任何事都更不方便,但这真的让我烦恼。 我需要导入或配置什么才能让IntelliJ识别这些运算符?

显然,JetBrains采用了Scala插件的“永远处于测试阶段”的方法,因此请准备好经常看到错误。 我每天都会报告,我必须承认,他们确实解决了我发布的问题。 基本上我想说的是每当你遇到Scala插件的任何问题时,只需将它发布在他们的问题跟踪器上

一旦你确认你有斯卡拉的最新版本和游戏安装和配置的插件,创建一个新的Play应用程序的IntelliJ与所描述的在这里

@Randall从另一方面解决问题的方法,让Play生成一个IntelliJ项目,应该可行,但我个人已经发现问题,因为JetBrains对IntelliJ所做的更改导致了落后。 它可能仍适用于你。

Randall在他的评论中给出了答案,你可能没有正确设置你的项目,或者在添加依赖项之后忘记做了sbt gen-idea (并重新启动/重新加载Intellij)。 另外我注意到在更新IDE之后,奇怪的Intellij非识别错误经常消失。

当我在scala中使用mkString方法时,我遇到了同样的问题。 并且intellij正在抛出编译器警报

无法识别符号mkString

但是当我在使用mkString方法之前应用toString方法时。 警报消失了,代码编译成功

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM