我在大型系统中工作时看到的常见模式(问题)是类名冲突。特别是在处理不同的有界上下文时,可以在不同的包中找到几个具有相同名称的类。
我已经看到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
由于
答案 0 :(得分:3)
不,这通常不可能。
如果你发现自己想在课堂上这样做,你可以通过以下方式解决这个问题:
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._