例如,我有案例类
case class foo(timestamp:String, epochSecond: Long)
和
case class bar(epochSecond: Long, timestamp:String)
是否可以在这两个类的实例之间进行转换?
答案 0 :(得分:1)
您的问题相当模糊,因为有很多方法可以实现这一目标。这是一个选择。
使用案例类的定义......
case class Foo(timestamp:String, epochSecond: Long)
case class Bar(epochSecond: Long, timestamp:String)
...添加辅助工厂方法。
object Foo {
def apply(b: Bar): Foo = this(b.timestamp, b.epochSecond)
}
object Bar {
def apply(f: Foo): Bar = this(f.epochSecond, f.timestamp)
}
现在,您可以非常简单地从一种类型转换到另一种类型。
val fooX = Foo("noon", 42L)
val barY = Bar(99L, "none")
val fooY = Foo(barY) //fooY: Foo = Foo(none,99)
val barX = Bar(fooX) //barX: Bar = Bar(42,noon)