相关疑难解决方法(0)

有没有办法控制默认使用哪个隐式转换?

假设我有这个:

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

现在,如果我添加这个隐含:

implicit def gimmeString2(y:String) = new String2(y)
Run Code Online (Sandbox Code Playgroud)

我会得到一个编译错误,因为stringWrapper也添加了这个隐式.有没有办法说编译器"忽略其他含义,使用它",这样我就不必实例化一个String2对象并对其进行处理?

我承认示例代码可能不是最合适的(对于这个问题),但我认为它会做.

scala implicit

20
推荐指数
1
解决办法
4644
查看次数

标签 统计

implicit ×1

scala ×1