我有一个csv文本文件,用于存储变量名称,类型和值,例如:
name, String, Matt
age, Int, 24
cash, Long, 3000
根据这个参数,我想填写一个案例类:
case class Person(name: String, age:Int, cash: Long)
我要做的是创建一个variableName的地图 - >正确类型的值,即
name -> "Matt", age -> 24, cash -> 3000L
我可以将所有字段读作字符串,因此元组(名称,类型,值)由(“age”,“Int”,“24”)组成。 到目前为止我提出的唯一解决方案是编写冗长而混乱的工厂方法,这里的想法如下所述:
val longStr: String = "Long"
val intStr: String = "Int"
// .... other types
tuple match {
case (name, `longStr`, value) => (name -> value.toLong)
case (name, `intStr`, value) => (name -> value.toInt)
// ... other matches
}
有没有更好的方法来实现这个目标?
是否有一种相对简单的方法可以从文本文件中跳过阅读类型并从案例类中推断它?