我有两种方法用于从字符串创建货币枚举。枚举货币是Java枚举。
他们的签名是:
def sCurrency: Option[Currency] Or One[ErrorMessage] = ???
def cCurrency: Currency Or One[ErrorMessage] = ???
尽我所能,我似乎无法获得Try / Recover with并且所有情况下的类型参数都是正确的。我一起攻击实现只处理Good -
def cCurrency: Currency Or One[ErrorMessage] =
Good(String2Currency(currencyString))
def sCurrency: Option[Currency] Or One[ErrorMessage] =
Good(currencyString map (String2Currency(_)))
implicit def String2Currency(v: String): Currency = Currency.valueOf(v.toUpperCase)
我努力寻找一篇涵盖混合Try,One,Options,Or和recoverWith的复杂性的文章,所以我的问题是双重的 - 我应该如何实现这些方法,任何人都可以解释/链接一篇关于实际内容的文章去这里以及它是如何运作的?
我无法更改任何一种方法的返回类型。