2017-07-13 40 views
0

如何从当前范围重命名定义?令人鼓舞的例子:如何从当前范围中删除/重命名定义?

package fails { 
    trait A 
    object Inner { 
    import A => AA // error here 
    trait B 
    trait A extends AA with B 
    } 
} 

配有独立包装作品的代码,但它看起来像样板:

package works { 
    package boilerplate { 
    trait A 
    } 
    import boilerplate._ 

    object Inner { 
    import boilerplate.{A => AA} 
    trait B 
    trait A extends AA with B 
    } 
} 

怎么可能被文笔优美?

回答

1

稍作调整:

package works { 
    trait A 
    object Inner { 
    import works.{A => AA} 
    trait B 
    trait A extends AA with B 
    } 
} 
+0

你需要指定完整的包路径,这违背了相对进口的目的。我不能只重命名package'works'来打包'worksexcellently'。这会迫使我改变除了外部引用之外的模块间交互。 – ayvango