简述:是否可能(本地)禁用路径相关的类型?我想发出一个类似于import x._
的单个导入语句,但是要使C
指向X#C
而不是x.C
(其中X
是x
的类型)?
我有一堆类型:
class Button[M] { ... }
class Label[M] { ... }
...
我恰好在使用它们时将相同类型的参数传递给所有函数:
class UseSite[M] (
btn1 : Button[M]
, btn2 : Button[M]
, lbl1 : Label[M]) {
...
}
我认为将所有这些类型打包起来,这样我只需要一次性传递类型参数会更好:
class Swing[M] {
class Button { ... }
class Label { ...}
}
然后在使用网站上,我希望能够做到这一点:
class WithSwing[M] {
val swing = new Swing[M]
import swing._
class UseSite(
btn1 : Button
, btn2 : Button
, lbl1 : Label) {
...
}
}
然而,由于路径依赖类型,这并不能正常工作:
Button
指的是 swing.Button
而不是 Swing[M]#Button
,因此外部代码很难向 UseSite
构造函数传递正确的参数。有没有一种好的方法使
Button
指的是 Swing[M]#Button
而不是 swing.Button
?