Scala - 结合Try,Option,Or,Good,ErrorMessage

时间:2016-12-07 20:01:40

标签: scala scalactic

我有两种方法用于从字符串创建货币枚举。枚举货币是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的复杂性的文章,所以我的问题是双重的 - 我应该如何实现这些方法,任何人都可以解释/链接一篇关于实际内容的文章去这里以及它是如何运作的?

我无法更改任何一种方法的返回类型。

0 个答案:

没有答案