gpt4 book ai didi

java - 如何在 Java 中传递 Scala 对象引用?

转载 作者:搜寻专家 更新时间:2023-10-30 21:36:21 25 4
gpt4 key购买 nike

我想从 Java 方法返回对 Scala 对象的引用。我该怎么做?

我的 Scala 对象是这样的:

trait Environment 

object LocalEnvironment extends Environment {...}
object ServerEnvironment extends Environment {...}

...我希望我的 Java 方法是这样的:

Environment getEnvironment() { return LocalEnvironment; }  // DOES NOT COMPILE

有办法吗?

最佳答案

虽然 $.MODULE$ 方法有效,但获得与 Scala 对象的 Java 互操作的稍微不那么刺耳的方法是将对象公开为自身的方法。

斯卡拉:

object LocalEnvironment extends Environment{
def instance = this
}

Java:

Environment getEnvironment() { return LocalEnvironment.instance(); }  

之所以可行,是因为在幕后,.instance() 是作为类 LocalEnvironment 上的静态方法实现的。已经有一些关于 Scala 对象默认获得“实例”方法的讨论,正是出于这个目的。

关于java - 如何在 Java 中传递 Scala 对象引用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3845737/

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