我想创建一个实现具有bidrectional链接的树的特征,以便在节点添加父节点时将该节点添加到父节点的子节点。我得到下面的错误是:具有单一类型特征的双向链接
类型不匹配;发现:PolyTree.this.type(与基础型PolyTree [T])要求:T
任何想法,为什么这个代码是得到一个错误,什么是必要的,以使此代码工作:
trait PolyTree[T <: PolyTree[T]] {
private val _parents: ListBuffer[T] = ListBuffer()
private val _children: ListBuffer[T] = ListBuffer()
def addParent(parent: T): PolyTree[T] = {
if (parent == this)
throw new IllegalArgumentException();
_parents += parent
parent._children += this // Error
this
}
}
我认为这应该是+ =这,而不是+ =树?但这不是错误的原因。 – 2011-05-10 03:04:12
它应该是+ =这...改变了这个例子。 – user465342 2011-05-10 03:54:33