【发布时间】:2020-10-20 14:26:40
【问题描述】:
我在 Scala 中创建了一个具有 Java API 的库。
我想提供这样一个回调(Java):
private static void onB(Stats stats) {
//... implementation does not matter
}
Scala API 将 this 作为类参数或抽象类的方法。
class LoggerJava(
onBatch: Stats => Unit,
)
问题是,我不能像上面那样向 Scala API 提供函数 onB。这是必需的:
new LoggerJava(
(Stats stats) -> { onB(stats); return null; },
)
这可能是两个不同的问题。我最感兴趣的是听到人们在这种情况下使用的模式。目标是库的用户不需要因为实现语言而采取不同的行动。
斯卡拉 2.13 JVM 8+
【问题讨论】:
-
stackoverflow.com/questions/31527166/… 和 stackoverflow.com/questions/26643045/… 解决了这个问题,但它们的用例比我的要复杂得多。此外,它们来自 Scala 2.13 之前的版本
-
new LoggerJava(ClassName::onB)的错误是什么?
标签: java scala language-interoperability