Intellij在Java中错误地指示了Akka代码的错误

时间:2014-05-03 06:53:58

标签: java intellij-idea akka

以下是设置:

  • IntelliJ 13.1.2(也尝试过13.1.1)
  • Akka 2.3.2
  • Java 1.8(也尝试过Java 1.7)
  • Scala library 2.11(也尝试过2.10)
  • Scala IntelliJ插件0.35.683
  • Gradle 1.11(IntelliJ使用相同的安装)

我正在尝试编写一些做一些Akka的Java代码 - 创建Actors,发送消息等等。但是,有两段代码在IntelliJ中抛出类型错误但在编译时工作得很好命令行,我不知道如何解决它。

  1. 未来#的onSuccess()

    我有这样的电话:

    Future<Iterable<Object>> sequence = Futures.sequence(...);
    sequence.onSuccess(new PrintResult<Iterable<Object>>(), getContext().dispatcher());
    

    其中PrintResult的定义与此处相同:http://doc.akka.io/docs/akka/2.3.2/java/futures.html(即PrintResult扩展OnSuccess)

    但是,我在PrintResult的IntelliJ中得到一个持久的红色下划线:

      未来的

    onSuccess(scala.PartialFunction,java.lang.Object&gt;,ExecutionContext)无法应用   to(PrintResult&gt;,ExecutionContextExecutor)

  2. 我有一个与日志相关的方法,可以简化为:

    public void log(LoggingAdapter adapter, Logging.LogLevel level, String message) {
        adapter.log(level, message);
    }
    

    IntelliJ不抱怨。但是如果我尝试在命令行上构建它,javac会抱怨:error: incompatible types: LogLevel cannot be converted to int。添加level.asInt()会使命令行错误消失,但现在IntelliJ会抱怨adapter.log(level,message)不会为某个级别带来int。


  3. 任何想法可以解决问题并使IntelliJ停止抱怨?

1 个答案:

答案 0 :(得分:0)

这看起来像一个IntelliJ Scala插件错误,简单明了。官方错误跟踪器中有许多错误match这个一般描述,所有&#34;好的代码红色&#34;或类似的。所以我会从那里开始,如果需要可能会打开一个bug。