Я довольно новичок в 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).
Идеи приветствуются!