6

Try[Option[T]]aを aにフラット化したいTry[T]

これが私のコードです

def flattenTry[T](t: Try[Option[T]]) : Try[T] = {
  t match {
    case f : Failure[T] => f.asInstanceOf[Failure[T]]
    case Success(e) => 
      e match {
        case None => Failure[T](new Exception("Parsing error"))
        case Some(s) => Success(s)
      }
  }
}

より良い方法はありますか?

4

4 に答える 4

5

try をオプションに変換してからフラット化します。

val t = Try(Some(1))
val o = t.toOption.flatten
于 2016-08-23T12:59:20.583 に答える