【发布时间】:2011-02-28 23:52:03
【问题描述】:
假设我有以下课程:
类人(val firstName:String, val lastName:String)
有没有一种无需手动创建 toXml() 方法就可以自动从此类生成 xml 的方法?理想情况下,输出将类似于:
似乎应该有一种方法可以做到这一点,而不必手动写出所有这些。也许有一个我还没有发现的特质?
【问题讨论】:
标签: scala
假设我有以下课程:
类人(val firstName:String, val lastName:String)
有没有一种无需手动创建 toXml() 方法就可以自动从此类生成 xml 的方法?理想情况下,输出将类似于:
似乎应该有一种方法可以做到这一点,而不必手动写出所有这些。也许有一个我还没有发现的特质?
【问题讨论】:
标签: scala
对于case 类(或Product 的其他子类),这曾经很容易通用编写:名称可以用productPrefix 检索,所有值都可以通过productIterator 和名称进行迭代字段通过productElementName。
不幸的是,productElementName 的寿命很短:它被添加到 revision 20958 并在 revision 21223 中删除,显然是因为它增加了案例类的权重(还有一个 open ticket 用于它) .
【讨论】:
不幸的是,我不认为有这么神奇的特质。您可以使用 XStream 之类的东西来完成此操作。但是,它似乎不会自动打印所有 Scala 类,因此您可能需要编写自己的转换器。 Someone else 已经在列表的情况下这样做了,我想对于您的示例,您可能需要类似的东西。
【讨论】: