![](/img/trans.png)
[英]How do I import singleton object from Scala package in Java?
[英]How to access an object Foo contained in a scala package object from Java?
如何从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$
companion对象。
如果您查看Scala库中对象中的对象,例如scala.math.Ordering.Boolean
,您可以使用scala.math.Ordering$Boolean$.MODULE$
从Java获取它。 我认为没有理由为什么包对象在这方面不应该像普通对象一样,所以你的Foo
实例应该是domain$Foo$.MODULE$
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.