visitorパターンを使用してツリーを実装したいと思います。そこで、私はメインクラスNode
と、そのクラスを拡張する他のクラスを作成しました(例えば、Node1
、Node2
、Node3
)。 Node
には、文字列とArrayList
のNodes
があり、これはそのノードの子のリストです。だから私は、3つの機能visit(Node1 x)
で訪問者を実装し...とmain
に私はすべてのノードの受け入れ呼びたい:.getClass
は、特定のクラス を返すにもかかわらず、私はノード1を意味するので、これは動作しませんVisitor Patternはオブジェクトのクラスを認識しません
SomeVisitor v = new SomeVisitor();
Node n = makeTree();
Iterator<? extends Node> it = n.children.iterator();
while(it.hasNext()) {
System.out.println(it.next().getClass());
it.next.accept(v);
}
を、2または3であり、私が手にエラーがそれがit.next
であるがタイプ ノードであるが、私は私のツリー内の任意のノードオブジェクトを持っていない、と私は visit(Node)
だけvisit(Node 1,2,3)
をあなたはあなたが投稿したコードのビットのバグを持っている:あなたはit.next '呼んでいます() 'を同じ繰り返しで2回繰り返します。 – toto2