【问题标题】:class must either be declared abstract or implement convertToLegacyCheckingEqualizer类必须声明为抽象类或实现 convertToLegacyCheckingEqualizer
【发布时间】:2017-07-19 00:24:52
【问题描述】:

我在 IntelliJ 2017.1 Ultimate 中编写了一个简单的测试用例。我在 IntelliJ 中看到一条绝对虚假的错误消息

class must either be declared abstract or implement convertToLegacyCheckingEqualizer

我的代码编译和运行都很好,但 IntelliJ 版本总是为每个测试类显示此消息。

我用谷歌搜索并发现完全不满意的答案,例如

* I restarted my IDE to solve the problem
* I deleted my idea project and recreated it to solve the problem
* I cleared ivy cache to solve the problem.

这个解决方案是错误的,并没有真正解决问题。

【问题讨论】:

  • 你能发布一个简单的、一类项目来说明这个问题吗?您在使用 SBT 吗?您是否使用 IntelliJ Scala 插件(我假设您是,但从您的问题中并不明显。)没有看到您的代码的定义和您的 IntelliJ 配置,帮不了你。
  • 我对问题进行了截图。是的,我正在使用 SBT 和 Scala 插件。

标签: scala intellij-idea


【解决方案1】:

试一试:在 IntelliJ 中,转到 文件 菜单,然后选择 Invalidate Caches / Restart... 选项。在出现的对话框中,单击 Invalidate and Restart 按钮。

IntelliJ重启后,检查是否还有同样的问题。

【讨论】:

  • IntelliJ重启后,我还是有同样的问题:-(
  • @FriedBrice 运行sbt clean (先从IntelliJ 退出,然后从命令行运行),然后在IntelliJ 第二次。如果失败,可能还需要清除 Ivy 缓存,然后再次重复这些步骤。
  • 删除了~/.m2、~/.sbt、~/.ivy2、~/.scalac,并删除并重新克隆了项目目录。同样的问题:-(我会继续谷歌搜索。谢谢你的帮助,@MikeAllen :-)
  • 感谢您的帮助和耐心等待。我最终发现问题是缺少 JDK。我升级了我的系统JDK并删除了旧的JDK,而没有在项目设置中更改它。在项目设置中更改它使一切正常:-)
  • 它是 1.8.0_15x,而不是 1.8.0_162。 brew upgrade 引入了新版本的 Java,我在 IntelliJ 中的项目结构被错误地配置为指向文字 1.8.0_15x 目录,而不是使用我的 JAVA_HOME 环境变量。我将其设置为使用 JAVA_HOME,因此以后的升级不会破坏我的项目。
猜你喜欢
  • 2015-02-28
  • 2017-08-17
  • 2015-06-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-24
相关资源
最近更新 更多