TL&DR: Возможно ли ( локально?) Отключить зависящую от пути типизацию? Я бы хотел выпустить один оператор импорта, аналогичный import x ._
, но чтобы C
ссылался на X # C
, а не xC
( 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) {
...
}
}
Однако это не работает должным образом из-за типизации, зависящей от пути: Кнопка
ссылается на swing.Button
вместо ] Swing [M] #Button
, поэтому внешнему коду очень трудно передавать правильные аргументы. в конструктор UseSite
.
Есть ли удобный способ заставить Button
ссылаться на Swing [M] #Button
, а не на swing.Button
?