trait Mixin {
class P
}
abstract class SuperClass[T]
class Impl extends SuperClass[P] with Mixin
给出:
not found: type P
有没有办法提供作为参数混合的成员类P
到超类,或者这是不可能的,因为评估的顺序(或其他一些问题?)。
答案 0 :(得分:1)
通过这种方式,范围无法正常运行。但是类型成员和类型参数几乎是等价的,如果你可以让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]
。