【发布时间】:2014-04-23 01:46:45
【问题描述】:
我正在尝试将 java.util.List 转换为 Scala 列表。 674713 帖子中有很多可能性,所以我想知道哪一个是最好的。我正在使用 Play 2.1.1。我的模型是:
case class Page[T](
var data: java.util.List[T],
var previous: String,
var next: String,
var totalPageCount: Int)(implicit val tWrites: Writes[T])
object Page {
implicit def pageWrites[T: Writes]: Writes[Page[T]] = (
(__ \ 'data).write[java.util.List[T]] and
(__ \ 'previous).write[String] and
(__ \ 'next).write[String] and
(__ \ 'totalPageCount).write[Int])(unlift(Page.unapply[T]))
}
此代码不起作用,因为我需要为通用 java.util.List[T] 类型添加编写器。
我已将此添加到我的对象页面:
implicit def listWrites[T](implicit fmt: Writes[T]): Writes[List[T]] = new Writes[List[T]] {
def writes(ts: List[T]) = JsArray(ts.map(t => Json.toJson(t)(fmt)))
}
但这会在执行我的项目时产生错误(listWrites 上的“MatchError: null”)。因此,我想将我的 java.util.List 转换为 Scala,以避免使用这个不起作用的编写器。有什么解决办法吗?
【问题讨论】:
标签: scala