我有一个带有case类的数据结构,一个字段中还包含了一个选项:
case class Name(value: Option[String]) extends AnyVal
case class Data(id: Int,name: Option[Name],isDefault: Boolean)
所以我想处理名称的某些情况,上选项的情况也是如此。但是,当名称不存在时,我希望使用None
而不是Some(Name(None))
作为结果。
我试图做这样的事情:
def handlenestedOptions(value: Option[String]): Option[Name] = {
value match {
case Some(data) => Some(Name(Some(data)))
case None => None
}
}
但是我也想以一种通用的方式来使用它,以便它可以与我拥有的相同结构的任何案例类一起使用。那么,如何更改此实现以使其更通用?
一般而言,我的意思是这样的:
def handlenestedOptions[T,K](value: Option[K]): Option[T]