我正在研究一个同时具有scala和java代码的项目。我想在java代码中使用用scala编写的类。我遇到的问题是scala类有一些自我类型依赖关系。从java中创建该类的新实例时,我不知道如何给它们。从java初始化自我类型依赖关系的scala类
trait Deps1 {
def dep1 = println("dep1")
}
trait Deps2 {
def dep2 = println("dep2")
}
class TestClass {
this: Deps1 with Deps2 =>
def test = {
dep1
dep2
}
}
Scala中,如果我创造的TestClass
比如我可以用new TestClass with Deps1 with Deps2
,但我不知道该怎么做,在Java代码。
我使用的是scala 2.9.2。谁可以帮我这个事?
我建议使用'javap'来理解从这个Scala源生成的'.class'文件。我怀疑你会发现从Java开始工作太麻烦。 – mergeconflict 2012-07-12 05:36:32
根据Brain和Rex的回答,有两种主要方法可以实现此功能。
方法1:
在scala中创建具有所有依赖关系的类并使用它(如Rex所述)是我认为的最简单的方法。
方法2:
除此之外,我们可以按如下方式直接在java中实现类并使用它。
class TestClassWithDeps extends TestClass implements Deps1,Deps2 Deps1 $ class.dep1(this);这个函数返回的值为0。 \t} \t公共无效DEP2(){ \t \t Deps2 $ class.dep2(本); \t} } – 2012-07-12 07:10:56