【问题标题】:IntelliJ keeps removing the import of context.dispatcher from akka tutorialIntelliJ 不断从 akka 教程中删除 context.dispatcher 的导入
【发布时间】:2015-01-19 15:06:14
【问题描述】:

我正在关注 akka-in-action 教程,在第 2 章中,有一个类 (https://github.com/RayRoestenburg/akka-in-action/blob/master/chapter2/src/main/scala/com/goticks/RestInterface.scala):

trait RestApi extends HttpService with ActorLogging { actor: Actor =>
  import context.dispatcher
  import com.goticks.TicketProtocol._
  ...

import context.dispatcher 从未使用过,但它是用注释定义的:

  /**
   * Returns the dispatcher (MessageDispatcher) that is used for this Actor.
   * Importing this member will place an implicit ExecutionContext in scope.
   */
  implicit def dispatcher: ExecutionContextExecutor

但是,IntelliJ 一直将导入标记为“未使用”并在“优化导入”时将其删除,从而导致错误 value pipeTo is not a member of scala.concurrent.Future[Any]

有没有办法告诉 IntelliJ 这个导入不是为了“使用”,而只是提供一个上下文?

或者应该更新教程以不使用这种“未使用的导入”?

【问题讨论】:

  • Intellij 的“优化导入”功能有问题。我倾向于在设置中关闭删除未使用的导入,只使用它来添加新的导入。
  • 不。这不是关于禁用删除未使用包的所有导入,而是关于禁用删除“使用”但 IDEA 认为它们“未使用”的导入。
  • 我是否需要编辑问题以消除“重复备注”框?

标签: scala intellij-idea akka executioncontext


【解决方案1】:

对我来说,这看起来像是问题SCL-9326。 IntelliJ 15 对此有一个很好的修复:按 alt-enter(在 Mac 上)并选择“将此导入标记为此项目中始终使用”。

【讨论】:

  • 请注意,您必须禁用“动态优化导入”才能正常工作
【解决方案2】:

进入设置-编辑器-通用-自动导入 并将包添加到“从导入和完成中排除”列表

您还可以禁用“动态优化导入”,这样它就不会在没有您明确请求的情况下删除您的导入

【讨论】:

  • 嗯,不错的解决方案,但有单独的“Java”和“Scala”部分。在“Scala”部分中,除了“从导入和完成中排除”之外的选项是相同的
  • 我认为来自confluence.jetbrains.com/display/IntelliJIDEA/… 的东西可能会有所帮助,但事实并非如此。
猜你喜欢
  • 2012-10-06
  • 1970-01-01
  • 2016-05-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多