Gibt es eine Möglichkeit zu steuern, welche implizite Konvertierung standardmäßig verwendet wird?

Angenommen, ich habe Folgendes:

class String2(val x:String) {
    def *(times:Int) : String = {
        val builder = new StringBuilder()
        for( i <- 0 until times) {
            builder.append(x)
        }
        builder.toString()
    }
}

Jetzt, wenn ich dies implizit hinzufüge:

implicit def gimmeString2(y:String) = new String2(y)

Ich erhalte einen Kompilierungsfehler, da stringWrapper dieses implizite Element ebenfalls hinzufügt. Gibt es eine Möglichkeit, dem Compiler zu sagen: "Ignoriere andere Implikationen, benutze dies", damit ich a nicht instanziieren mussString2 Einspruch erheben und daran arbeiten?

Ich gebe zu, dass der Beispielcode möglicherweise nicht der am besten geeignete ist (für diese Frage), aber ich denke, dass er ausreicht.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage