在Scala中为我们的类创建隐式类是个好主意吗



关于隐式类的一个问题:

我知道Scala支持隐式类来为现有行为添加功能,但我们确实有几个为自己的类编写的隐式类,我认为这样做不是一个好主意,例如:

case class AmountInPence(value: Long)
implicit class AmountInPenceOps(amountInPence: AmountInPence) {
def inPounds: BigDecimal = (BigDecimal(amountInPence.value) / 100).setScale(2)
//few other defs and vals
......
}

这都是我们的代码,意味着我们也拥有case类AmountInPence。我认为使用隐式类作为将行为添加到我们自己的类中的一种方式对我来说似乎是错误的方法,但我想知道你对这个的看法

我们可以在case类或配套对象中添加defs和vals,但有没有更好的方法可以将功能添加到case类中,而不是在上述情况下使用Implicits

感谢

Suresh

假设您拥有AmountInPence类,那么使用隐式类是没有意义的。只需将该方法直接添加到AmountInPence即可。

相关内容

  • 没有找到相关文章

最新更新