我有一個Java/Scala混合Maven項目。我需要重用Saddle方法make
,該方法具體定義爲Index
特徵的一部分。如果以任何方式幫助,該方法被定義爲here。我曾嘗試從java使用Index.make
或Index$class.make
調用該方法,但在這兩種情況下,我都收到error: cannot find symbol
編譯錯誤。如何從Java調用具體的Scala特徵方法?
有沒有辦法從Java調用具體的Trait方法?
我有一個Java/Scala混合Maven項目。我需要重用Saddle方法make
,該方法具體定義爲Index
特徵的一部分。如果以任何方式幫助,該方法被定義爲here。我曾嘗試從java使用Index.make
或Index$class.make
調用該方法,但在這兩種情況下,我都收到error: cannot find symbol
編譯錯誤。如何從Java調用具體的Scala特徵方法?
有沒有辦法從Java調用具體的Trait方法?
A trait
與Java接口類似,它不是一個具體的構造函數。
從斯卡拉:
class IndexImpl extends Index[SomeParamtersHere] {}
val x = new ClassImpl
x.make(..)
或者使用對象:
object Index extends Index {}
Index.make(..)
從Java:
性狀與具體實現將編譯到適當的abstract class
。如果某些成員沒有具體實施,則必須實施它們。
import org.saddle.Index
public class TraitImpl extends Index$class {
}
好的我找到了答案。調用它像這樣的工作,但只是因爲指數特質已經有可用的(我沒有注意到之前)索引對象:
Index$.MODULE$.make(rrule, startDate, endDate);
請出示你的'trait'代碼 - 我假設'使'是在'trait Index'上實現的,但這是一個假設,並且給出'Index $ class.make'不起作用可能是錯誤的 –