TL & DR: Можно ли (локально?) Отключить ввод с использованием пути? Я хотел бы выпустить один оператор импорта, похожий на 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
?