将 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(_))
我的程序中有一部分看起来像这样
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(_))