我正在研究一個同時具有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