假设我有这个:
class String2(val x:String) {
def *(times:Int) : String = {
val builder = new StringBuilder()
for( i <- 0 until times) {
builder.append(x)
}
builder.toString()
}
}
现在如果我添加这个隐式:
implicit def gimmeString2(y:String) = new String2(y)
我会得到一个编译错误,因为 stringWrapper 也添加了这个隐式。有没有办法对编译器说“忽略其他隐式,使用这个”,这样我就不必实例化一个String2
对象并处理它?
我承认示例代码可能不是最合适的(对于这个问题),但我认为它会做。