gpt4 book ai didi

scala - 使用 Scala 应用程序将 List[Object] 转换为案例类

转载 作者:行者123 更新时间:2023-12-01 12:45:10 26 4
gpt4 key购买 nike

我正在写一个 Scala Play Framework使用 Datomic 的应用程序作为后端数据库。

当我查询 Datomic 时,它返回“行”作为 java.lang.ObjectListjava.util.List秒。例如:

[
[ "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]))

这有点丑陋且容易出错。

有没有办法使用应用仿函数来实现同样的事情?应用仿函数是最好的方法吗?有没有更好的办法?

最佳答案

result.collect {case name::date::Nil => Person(name.toString, LocalDate.parse(date.toString)}
// or case List(name,date) => ...

关于scala - 使用 Scala 应用程序将 List[Object] 转换为案例类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20841284/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com