我在Scala中的另一个对象中有一个对象,我想用Java导入它。设置如下所示:
Scala:
package scalapart;
object Outer {
object Inner {
def method: String = "test"
}
}
Java:
import scalapart.Outer.Inner;
...
Outer.Inner.method()
不幸的是,我在Java代码的第1行得到了cannot find symbol
。如果I import scalapart.Outer;
,则第二行报告相同的问题。
有没有办法在Java中导入在另一个Scala对象中定义的Scala对象?
1条答案
按热度按时间ijnw1ujt1#
您可以直接使用它:
或者使用
static import
,如下所示(或类似):Java没有任何与Singleton对象直接等价的东西,因此对于每个Scala Singleton对象,编译器都会为该
object
创建一个同名的合成Java类(在末尾附加一个美元符号),并创建一个名为MODULE$
的static
字段来保存该类的单个示例。因此,为了确保一个对象只有一个示例,Scala使用了静态类保持器。您的反汇编代码如下所示: