¿Hay alguna forma de controlar qué conversión implícita se utilizará por defecto?
Supongamos que tengo esto:
class String2(val x:String) {
def *(times:Int) : String = {
val builder = new StringBuilder()
for( i <- 0 until times) {
builder.append(x)
}
builder.toString()
}
}
Ahora si agrego esto implícito:
implicit def gimmeString2(y:String) = new String2(y)
Obtendré un error de compilación porque stringWrapper también agrega esto implícito. ¿Hay una manera de decirle al compilador "ignora otras implicaciones, usa esto", para que no tenga que instanciar unString2
¿Objetar y trabajar en eso?
Admito que el código de ejemplo puede no ser el más apropiado (para esta pregunta), pero creo que funcionará.