我在大型系统中工作时看到的一个常见模式(问题)是类名冲突。特别是在处理不同的有界上下文时,我们可以在不同的包中找到多个具有相同名称的类。
我已经看到在 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
Run Code Online (Sandbox Code Playgroud)
谢谢
不,这通常是不可能的。
不过,如果你发现自己想在一个又一个的课上这样做,你可以通过以下方法来经历一次痛苦:
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.
}
Run Code Online (Sandbox Code Playgroud)
然后在需要的地方导入:
import Mutables._
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1268 次 |
| 最近记录: |