我想在 Scala XML Elem 对象和 XML 元素的另一种表示形式之间进行隐式转换,在我的例子中是 dom4j 元素。我写了以下隐式转换:
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。所以我认为转换应该以某种方式参数化。
那么为了尽可能通用而编写这些转换的标准方法是什么?