我正在编写一个使用Datomic作为后端数据库的 Scala Play Framework应用程序。
java.util.List
当我查询 Datomic 时,它以s of List
s of s 的形式返回“rows” java.lang.Object
。例如:
[
[ "Joe", "1970-04-15" ],
[ "Mary", "1975-06-01" ]
]
我想以最符合 Scala 习惯的方式将这些转换为案例类。
目前我的代码如下所示:
import org.joda.time._
case class Person(name: String, dateOfBirth: LocalDate)
// assuming the query returns 1 row, get the row List
val row = result.iterator.next // e.g.: [ "Joe", "1970-04-15" ]
User(row.get(0).asInstanceOf[String],
LocalDate.parse(row.get(1).asInstanceOf[String]))
这有点丑陋且容易出错。
有没有办法使用应用函子来实现同样的事情?应用函子是最好的方法吗?有没有更好的办法?