【发布时间】:2018-04-11 20:58:46
【问题描述】:
我有一个带有类型参数的特征,它有一个列表,其中包含实现此特征的另一个类的实例。我不关心这些实例的类型参数,所以我尝试定义一个类型,该类型允许任何子类使用任何类型参数实现特征。
trait Synchronizable[A,B] {
type S <: Synchronizable[_,_]
val slaves: MutableList[S]
def synchronizeWith(q: S) = {
if (!slaves.contains(q)) slaves += q
}
}
但由于某些特定实例不符合此类型定义,因此无法编译。
[error] found : TwoBuffers.this.faster.type (with underlying type model.collection.SynchronizableTimeSeriesBuffer[someCaseClass ,Option[Any]])
[error] required: TwoBuffers.this.slower.S
[error] slower.synchronizeWith(faster)
【问题讨论】:
-
还有一个问题是这样的事情是否可行
标签: scala types traits type-parameter