【问题标题】:IntelliJ IDEA 13 gives invalid error about incompatible types (Java-Scala-InterOp in Play)IntelliJ IDEA 13 给出了关于不兼容类型的无效错误(Java-Scala-InterOp in Play)
【发布时间】:2014-02-19 11:19:48
【问题描述】:

我刚刚从 IDEA 12 升级到 13(社区版),从那时起,我在 IDEA 中收到关于我的游戏项目不兼容类型的错误。

Option<String> authHeaderOption = requestHeader.headers().get(AUTHORIZATION);

requestHeader 是 play.api.mvc.RequestHeader 类型。错误消息指出:

Incompatible types. Found: 'scala.Option<java.lang.String>', required: 'scala.Option<java.lang.String>

因此它抱怨类型不兼容,但同时声明所需类型和找到的类型是相同的。

从播放控制台运行应用程序时一切正常,因此编译工作正常。

错误发生在调用scala play api的java类中。在升级 IntelliJ 之前没有这样的错误,所以它一定是一个 IDE 问题,但我还没有弄清楚是什么。

以前有人见过这种错误吗?

【问题讨论】:

  • 可能是像在 IDEA 模块配置中添加的多个 scala 库一样吗?
  • 可能是,我一直在看,但我对 IDEA 还太陌生,无法真正知道要寻找什么。在我的项目中的“外部库”下,我看到一个 SBT 条目:org.scala-lang:scala-library:2.10.2 但是当我打开它时,scala-library.jar 有两个条目似乎是相同的,我看不到删除一个的方法。我还尝试从 play 中重新创建创意文件,但这并没有改变任何东西。
  • 好的.. 突出显示其中一个罐子时只需按下删除键即可。一个给出了一个错误,虽然文件无法删除,但另一个可以毫无问题地删除,现在错误似乎消失了..

标签: java scala intellij-idea playframework


【解决方案1】:

点击“File -> Invalidate Caches / Restart...”菜单项。

【讨论】:

    【解决方案2】:

    正如上面 cmets 中所发布的,您可以通过点击删除键来删除库条目下列出的 jar。我只尝试了安全删除变体,这允许我删除两个条目之一,另一个确实产生错误并且没有被删除。但这似乎解决了问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-07-26
      • 2014-03-29
      • 1970-01-01
      • 2013-02-02
      • 2013-09-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多