如何从 Java 访问包含在 scala 包对象中的对象 Foo
?
package object domain { object Foo } domain$.MODULE$.Foo$.MODULE$
最佳答案
也许这在 Scala 2.8.1 中已经改变,但是提议的 domain$Foo$.MODULE$
不起作用。您必须使用 domain.package$Foo$.MODULE$
。
对象、方法等有点不同。给定 scala 类:
package object domain {
object foo
def bar = 42
val baz = 1.0
}
您可以在 Java 中访问 foo
、bar
和 baz
,如下所示:
domain.package$foo$.MODULE$
domain.package$.MODULE$.bar()
domain.package$.MODULE$.baz()
当我试图解决这个问题时,我认为我们遇到了麻烦,因为 Scala 生成了一个名为 package
的类,当然您不能在 Java 中导入它。幸运的是,我们只需要 package$
伴随对象,您可以导入它。
关于java - 如何从 Java 访问包含在 scala 包对象中的对象 Foo?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4553173/