java - 如何从 Java 访问包含在 scala 包对象中的对象 Foo?

标签 java scala

如何从 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 中访问 foobarbaz,如下所示:

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/

相关文章:

java - 怎么可能在循环内重新声明变量?

java - 保存子类别时出现 Hibernate 异常

scala - 从Scala中的目录读取文件

scala - Scala case 语句中的类型捕获

scala - scala中的 '_='是什么?

c# - 什么时候应该封装泛型类型?

java - 如何访问 JSON 元素(数组)

java - 自下而上构建树的问题

scala - 在 Scala 中添加和删除回调

scala - PartialFunction 与 Function1 语法方面