【发布时间】:2014-01-08 04:35:25
【问题描述】:
假设我有这个示例案例类
case class Test(key1: Int, key2: String, key3: String)
我有一张地图
myMap = Map("k1" -> 1, "k2" -> "val2", "k3" -> "val3")
我需要在代码的几个地方将此映射转换为我的案例类,如下所示:
myMap.asInstanceOf[Test]
最简单的方法是什么?我可以为此使用隐式吗?
【问题讨论】:
-
我不明白为什么答案如此复杂。普通函数怎么样
def map2Test(m: Map[String, Any]) = Test(m("k1').asInstanceOf[Int], m("k2") ... )如果你想要一个将映射转换为任何案例类的抽象,你可能必须使用反射。 -
@RobN:关键是要避免反射。你说答案很复杂,我说你的答案很脆弱。
标签: scala