這裏是基本的例子..我不能讓scala認識到我希望能夠以兩種不同的方式初始化我的類:通過現有序列或使用多個參數。Scala中具有多參數或序列的構造函數?
我收到的錯誤是:
雙重定義:方法適用:(PARAMS: 詮釋*)chorle.scala.tests.MultiParam和方法適用於:(plist中:
序號[INT]) chorle.scala.tests.MultiParam第9行有相同類型之後 擦除:(PARAMS:SEQ)chorle.scala.tests.MultiParam
哪個好,我得到了什麼這裏發生 - 編譯後兩者的功能導致在相同的頭部簽名中。但是,實際上它們的工作方式並不一樣 - 我無法啓用:apply(1,2,3)如果我只有apply(Seq)版本...並且我無法啓用apply(seq)the其他方式。我知道我可以用各種方法修補實際的函數調用,但是我怎樣才能在課堂上恰當地解決這個問題並且只有一次?謝謝!
class MultiParam protected (pList:Seq[Int])
object MultiParam {
def apply(pList:Seq[Int]): MultiParam = new MultiParam(pList)
def apply(params: Int *): MultiParam = new MultiParam(params)
}
和當然,我忽略了零參考的情況下! –