所以问题陈述如其所说。我想覆盖特定程序包中字符串类中的equals行为。
我环顾四周,似乎几乎没有办法这样做。
我最接近在现有类上定义方法的是-
implicit class StringImprovements(s: String) {
def increment = s.map(c => (c + 1).toChar)
}
然后像这样使用它-
"HAL".increment
说实话,这真是太神奇了。但是后来我尝试使用相同的方法来覆盖等于,这是行不通的。 我环顾四周,发现了2015年的一个问题-override library method using Scala Implicit
在上述问题中引用一行-
如果scala编译器没有它就找不到方法,则使用隐式,因此您不能使用隐式覆盖方法
但是考虑到scala的发布非常频繁,并且情况一直在变化,我想知道现在是否有可能通过这种方式或其他方式做到这一点。
谢谢!
答案 0 :(得分:2)
否,不可能。如果是的话,我希望很多库代码都会被破坏,因为它期望.ProjectTo<RandomDto>(null, "FirstChild", "SecondChild")
.ProjectTo<RandomDto>(x=>x.FirstChild, x=>x.SecondChild)
的正常行为!