我有以下代码:
new Room(
dbObject.get("_id").get.toString,
List[User]() ,
List[Message](),
dbObject.getAs[Date]("creation").get,
//dbObject.getAsOrElse[Option[Date]]("expires", None),
if(dbObject.containsField("expires"))
Some(dbObject.getAs[Date]("expires").get)
else
None,
List[String]())
我想知道我在使用getAsOrElse时做错了什么,因为如果我使用注释行,我将永远不会从字段 expires 获取值。要修复它,我需要实现,如果句子得到值。
提前感谢。
答案 0 :(得分:1)
当getAs[T]
返回选项[T]时,你可以使用它,例如:
dbObject.getAs[Date]("expires")
如果expires字段为Some(dateValue)
,则返回Date
;如果expires字段不存在,则返回None
或如果expires字段不能转换为Date
。