【问题标题】:Giving a prefix on import to all classes of a given package in Scala在 Scala 中为给定包的所有类提供导入前缀
【发布时间】:2015-09-25 01:23:38
【问题描述】:

我在大型系统中工作时看到的一个常见模式(问题)是类名冲突。特别是在处理不同的有界上下文时,可以在不同的包中找到多个同名的类。

我已经看到在 Scala 中可以在本地重命名一个类的名称,但我想知道是否可以重命名来自给定包的所有导入类的名称。我正在寻找类似于

import data.{*-> Data*} // all classes on data.* will appear with a Data prefix
import domain.{*->Domain*} // all classes on domain.P will appear with a Domain prefix

谢谢

【问题讨论】:

    标签: scala import


    【解决方案1】:

    不,这通常是不可能的。

    但是,如果您发现自己想在课后的课堂上这样做,您可以只经历一次这样的痛苦:

    object Mutables {
        import scala.collection.mutable._
        type MMap[K,V] = Map[K,V]
        type MHashMap[K,V] = HashMap[K,V]
        type MSet[A] = Set[A]
        type MHashSet[A] = HashSet[A]
        // etc.
    }
    

    然后在需要的地方导入:

    import Mutables._ 
    

    【讨论】:

    • 啊,这似乎是一个不错的妥协。谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多