使用 mixin class 的 class 成员参数化 super class
Parameterise super class with class member of mixin class
trait Mixin {
class P
}
abstract class SuperClass[T]
class Impl extends SuperClass[P] with Mixin
给出:
not found: type P
有没有办法提供成员 class P
作为参数混入超级 class,或者这是不可能的,因为评估的顺序(或其他问题?)。
这样示波器就无法正常工作了。但是类型成员和类型参数几乎是等价的,如果你可以让 T
成为 SuperClass
的成员,你会得到
abstract class SuperClass {
type T
}
// optional
object SuperClass {
type Aux[T0] = SuperClass { type T = T0 }
}
class Impl extends SuperClass with Mixin {
type T = P
}
在您希望将 T
用作通用参数的情况下,您可以使用 SuperClass.Aux[T]
.
trait Mixin {
class P
}
abstract class SuperClass[T]
class Impl extends SuperClass[P] with Mixin
给出:
not found: type P
有没有办法提供成员 class P
作为参数混入超级 class,或者这是不可能的,因为评估的顺序(或其他问题?)。
这样示波器就无法正常工作了。但是类型成员和类型参数几乎是等价的,如果你可以让 T
成为 SuperClass
的成员,你会得到
abstract class SuperClass {
type T
}
// optional
object SuperClass {
type Aux[T0] = SuperClass { type T = T0 }
}
class Impl extends SuperClass with Mixin {
type T = P
}
在您希望将 T
用作通用参数的情况下,您可以使用 SuperClass.Aux[T]
.