gpt4 book ai didi

java - 如何从 Java 调用在 Scala 包对象上定义的方法? (斯卡拉 2.10.x)

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:42:39 25 4
gpt4 key购买 nike

给定一个在(第 3 方,所以我不能只移动它)Scala 包对象上定义的方法,如下所示:

package foo

package object bar {
def doSomething(s: String): String = ???
}

我需要从 Java 代码调用 doSomething。我知道一般来说,我可以使用 ScalaObject$.method() 从 Java 获取 Scala 伴随对象的方法。然而,上面的示例编译为 foo.bar.package$.class,当然 Java 尖叫着 package 是一个保留字。

有没有办法直接从 Java 调用它?

最佳答案

我能想出的最好办法(可行,但很丑)是将 doSomething 包装在不在包对象中的 Scala 代码中,然后从我的 Java 代码中调用包装器。

object BarUtil {
def wrapper(s: String) = foo.bar.doSomething(s)
}

在 Java 中

public String doIt(String s) {
return BarUtil$.wrapper(s);
}

关于java - 如何从 Java 调用在 Scala 包对象上定义的方法? (斯卡拉 2.10.x),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33114910/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com