将ArrayBuffers转换为使用Seq

时间:2018-09-10 21:59:32

标签: scala shapeless

我有案例课

case class Y(y1: Seq[String])
case class X(x1: Seq[Int], x2: Seq[Y])

我可能有一个对象X,其中所有Seq都是ArrayBuffers。我如何重新创建对象X,将所有ArraysBuffers更改为Lists?我一般需要这样做!

使用Shapeless可以完成这种事情吗?

1 个答案:

答案 0 :(得分:0)

我不确定我是否正确理解了您的问题,但是简单的copy()可以为您提供帮助

val ax = X(mutable.ArrayBuffer.empty[Int], mutable.ArrayBuffer.empty[Y])
val bx = ax.copy(x1 = ax.x1.toList, x2 = ax.x2.toList)

输出

ax: X = X(ArrayBuffer(),ArrayBuffer())
bx: X = X(List(),List())