Existe uma maneira de controlar qual conversão implícita será o padrão usado?
Suponha que eu tenha isto:
class String2(val x:String) {
def *(times:Int) : String = {
val builder = new StringBuilder()
for( i <- 0 until times) {
builder.append(x)
}
builder.toString()
}
}
Agora, se eu adicionar isso implícito:
implicit def gimmeString2(y:String) = new String2(y)
Vou receber um erro de compilação porque stringWrapper também adiciona isso implícito. Existe uma maneira de dizer ao compilador "ignore outros implícitos, use isso", para que eu não precise instanciar umString2
objeto e trabalhar nisso?
Admito que o código de exemplo pode não ser o mais adequado (para essa pergunta), mas acho que será o melhor.