所以问题陈述正如它所说。我想在特定包中的字符串类中覆盖 equals 的行为。
我环顾四周,大多数情况下似乎没有办法做到这一点。
我最接近在现有类上定义方法的是 -
implicit class StringImprovements(s: String) {
def increment = s.map(c => (c + 1).toChar)
}
然后像这样使用它 -
"HAL".increment
老实说,这真是太棒了。但是后来我尝试使用相同的方法覆盖 equals,它不起作用。我环顾四周,从 2015 年发现了这个问题 -使用 Scala Implicit 覆盖库方法
引用上述问题中的一句话 -
如果 Scala 编译器找不到没有它的方法,则使用隐式,因此您不能使用隐式覆盖方法
但是考虑到 Scala 发布非常频繁并且事情一直在变化,我想知道现在是否可以这样做,通过这种方式或其他方式。
提前致谢!
不,这不可能。如果是这样,我希望很多库代码会被破坏,因为它期望从String#equals
!
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句