首页 > 解决方案 > 如何在 Java 中将 Scala 回调函数设置为参数?

问题描述

我是 Scala 的新手,不得不使用 Scala 用 Ja​​va 编写的库。这是所需的流程:

  1. public void myMethod(?)从 Scala调用 Java 方法
  2. myMethod可能会长时间运行,所以?我想有一个回调机制
  3. myMethod完成,在这种情况下,我并不真正关心结果,因此返回值无关紧要。

我发现了很多从 Java 调用 Scala 的例子,反之亦然,但不是作为 Java 函数中的引用参数。我想这类似于在 Java 中设置接口参数,但我的尝试失败了:

// java
public interface Callback {
  void callback(double d);
}

public void myMethod(Callback callback) {
   // do some stuff
   callback.callback(123D);
   // do more stuff
}

// scala
x.myMethod((x: Double) => {})

标签: javascalajava-8

解决方案


推荐阅读