0
我的API当前采用名为gamedate的可选参数。它以一个字符串的形式传入,在这个时候我稍后使用一些实用程序代码将它解析为一个Date对象。代码看起来像这样:Scala:解析API参数
val gdate:Option[String] = params.get("gamedate")
val res = gdate match {
case Some(s) => {
val date:Option[DateTime] = gdate map { MyDateTime.parseDate _ }
val dateOrDefault:DateTime = date.getOrElse((new DateTime).withTime(0, 0, 0, 0))
NBAScoreboard.findByDate(dateOrDefault)
}
case None => NBAScoreboard.getToday
}
这工作得很好。现在我想解决的是我允许多个游戏通过逗号分隔的列表传入。本来你可以通过这样的参数:
gamedate=20131211
现在我希望允许OR:
gamedate=20131211,20131212
需要修改上面的代码,试图拆分逗号分隔字符串将每个值解析为Date并将接口更改为findByDate以接受Seq [DateTime] vs DateTime。我试图运行这样的事情,但显然它不是去了解它的方式:
val res = gdates match {
case Some(s) => {
val dates:Option[Seq[DateTime]] = gdates map { _.split(",").distinct.map(MyDateTime.parseDate _)}
val datesOrDefault:Seq[DateTime] = dates map { _.getOrElse((new DateTime).withTime(0, 0, 0, 0))}
NBAScoreboard.findByDates(datesOrDefault)
}
case None => NBAScoreboard.getToday
}
什么是我的第一套转换的代码来处理这个用例的最佳方式?在我提供的第二个代码示例中,我可能相当接近,但我只是没有达到正确的效果。
但是,看起来你的代码仍然在getOrElse()上断了。 'value getOrElse不是Array [org.joda.time.DateTime]的成员' – randombits
谢谢,那里仍然有错误。 – tmbo