将 getOrElse 转换为对象

Converting getOrElse into a object

我的程序中有一部分看起来像这样

  Option(request.getOverrides)
    .map(_ => convertOverrides(_))
    .getOrElse(FinalOverrideObject(""))

它假设 return 一个 FinalOverrideObject 并将其传递给需要该对象的 class。但是 getOrElse 将输出转换为 any ,最后我不知道如何将其转换为 FinalOverrideObject 。无论选项是 Some 还是 None 总是有一个 FinalOverrideObject 被 returned 所以它应该是安全的,我只是不知道如何。

Option(request.getOverrides)
 .map(convertOverrides(_))
 .getOrElse(FinalOverrideObject(""))

否则:

Option(request.getOverrides)
 .map(o => convertOverrides(o))
 .getOrElse(FinalOverrideObject(""))

或使用折叠:

    Option(request.getOverrides)
    .fold(FinalOverrideObject(""))(convertOverrides(_))