Я бы хотел неявно выполнить преобразование между объектом Scala XML Elem и другим представлением элемента XML, в моем случае - dom4j Element. Я написал следующие неявные преобразования:
implicit def elemToElement(e: Elem): Element = ... do conversion here ...
implicit def elementToElem(e: Element): Elem = ... do conversion here ...
Пока все хорошо, это работает.
Теперь мне также нужны коллекции указанных элементов для преобразования в обе стороны. Во-первых, мне обязательно нужно написать дополнительные методы преобразования? Вещи, похоже, не сработали, если бы я этого не сделал.
Я пытался написать следующее:
implicit def elemTToElementT(t: Traversable[Elem]) = t map (elemToElement(_))
implicit def elementTToElemT(t: Traversable[Element]) = t map (elementToElem(_))
Это не выглядит слишком идеальным, потому что если метод преобразования принимает Traversable, он также возвращает Traversable. Если я передаю Список, я также получаю Traversable. Поэтому я предполагаю, что преобразование должно быть как-то параметризовано.
Так, каков стандартный способ записи этих преобразований, чтобы они были как можно более общими?