Scala value toInt不是选项[String]的成员
我是Scala的新手,我无法理解这一点。我相信这是一个简单的解决方案,但作为一个新手,我找不到它 我有这个密码Scala value toInt不是选项[String]的成员,scala,Scala,我是Scala的新手,我无法理解这一点。我相信这是一个简单的解决方案,但作为一个新手,我找不到它 我有这个密码 val resID = CartManager.getReservation(request) val id = if (resID.isDefined && resID.get.status == "FOUND") resID.get.id.toInt else -1 这给了我一个错误: value toInt is not a member of Optio
val resID = CartManager.getReservation(request)
val id = if (resID.isDefined && resID.get.status == "FOUND") resID.get.id.toInt else -1
这给了我一个错误:
value toInt is not a member of Option[String]
如果对象保留已定义,如何获取其id
谢谢这意味着您的
id
是选项[String],而不是字符串。
此外,您可以在此处使用a进行理解
val id = ( for {
resID <- CartManager.getReservation(request) if resID.status == "FOUND"
theID <- resID.id
} yield theID.toInt ) getOrElse -1
val id=(用于{
resID一种更好的功能性方法来完成您试图做的事情,如下所示:
val id = CartManager.getReservation(request).filter(_.status == "FOUND").map(_.id.toInt).getOrElse(-1)
使用filter
筛选包含的选项
值(如果存在),map
将CartManager
映射到选项[Int]
和getOrElse
从选项中提取值,如果选项为空,则默认值为-1
。resID.get.id.get.toInt
应该可以正常工作。但是,您应该首先检查id
本身是否已定义。但最重要的是,您应该真正避免这样做g这些类型的检查使用模式匹配或选项的方法,例如选项.map
/选项.flatMap
/选项.getOrElse
/选项.orElse