ノードとその親の間のグラフでタイプの関係を強制しようとしています。child.parents ::= this でコンパイルされない次のものがあります。どんなコメントでも歓迎します
trait TGraphNode {
type NodeType <: TGraphNode
var id = -1
var parents = List[NodeType]()
var children = List[TGraphNode]()
def addChild(child: NodeType) {
children ::= child
child.parents ::= this
}
override def toString = "node-"+id+"->"+children
}
申し訳ありません-次回はコンパイルエラーを追加します。私は次のことを達成しようとしています: タイプ F と C の 2 つのノードがあると想像してください - 構造によって C が親として F のみを持つことができるように強制したいのですが、その逆は気にしません。F は C、D.. を子として持つことができます。したがって、特性を実装するクラスで ParentType をオーバーライドできることを把握したいと思います。
class F extends TGraphNode ...
class B extends TGraphNode {
type ParentType = F
}
ありがとう