首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >有没有办法控制默认使用哪种隐式转换?

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

Stack Overflow用户
提问于 2009-12-11 17:48:21
回答 1查看 5K关注 0票数 20

假设我有这样的结果:

代码语言:javascript
复制
class String2(val x:String) {
    def *(times:Int) : String = {
        val builder = new StringBuilder()
        for( i <- 0 until times) {
            builder.append(x)
        }
        builder.toString()
    }
}

现在如果我添加这个隐式的:

代码语言:javascript
复制
implicit def gimmeString2(y:String) = new String2(y)

我会得到一个编译错误,因为stringWrapper也添加了这个隐式代码。有没有一种方法可以告诉编译器“忽略其他隐式,使用这个”,这样我就不必实例化String2对象并对其进行处理?

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

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1886953

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档