類型的方法,我很新的Scala和具有以下掙扎:應用超載,對集合
我有數據庫對象(類型BaseDoc)和值對象(類BaseVO的)。現在有一些需要對象的實例,並將其轉換爲其他類型的相應多個轉換方法(全稱爲「轉換」) - 是這樣的:
def convert(doc: ClickDoc): ClickVO = ...
def convert(doc: PointDoc): PointVO = ...
def convert(doc: WindowDoc): WindowVO = ...
現在,我有時需要轉換對象的列表。我將如何做到這一點 - 我試過:
def convert[D <: BaseDoc, V <: BaseVO](docs: List[D]):List[V] = docs match {
case List() => List()
case xs => xs.map(doc => convert(doc))
}
這導致'重載的方法值轉換替代...'。我試圖添加清單信息,但無法使其工作。
我甚至無法爲每個方法創建一個方法,因爲它會說類型擦除(List)後它們具有相同的參數類型。
想法歡迎!
感謝您的詳細解釋! – stephanos 2010-06-04 10:39:24