1

これが私のシナリオです。私は次のオブジェクトを持っています。

public class MyTemplate{

private MyTemplate[]childTemplates;
}

同じクラス内に、同じオブジェクトの子要素(この場合はテンプレート)を保持する配列があります。私が必要としているのは、各要素とそれらの要素内の要素を反復処理できるようにすることです。これは、ツリー構造のようなものである可能性があるためです。私は今のところ、要素内のすべての子要素をカバーできる方法を考えることができません。

誰かが私を正しい方向に向けることができるかどうか感謝します。

4

3 に答える 3

6

このような?

public class MyTemplate
{
  private MyTemplate[] childTemplates;

  void iterate()
  {
    // do something with this
    for (MyTemplate template: childTemplates)
      template.iterate();
  }
}
于 2013-01-23T07:16:19.773 に答える
1

各テンプレートを使用してプロセスを実行することもできます。

public class MyTemplate
{
  private MyTemplate[] childTemplates;

  void iterate()
  {
    preProcess();
    for (MyTemplate template: childTemplates)
      template.iterate();
    postProcess();
  }

  void preProcess()
  {
    // do something before iterating through the children
  }

  void postProcess()
  {
    // do something afterwards
  }

}
于 2013-01-23T07:24:27.710 に答える
1

これを試して:

public traverse() {
    if(children == null || children.size == 0) {
        return;
    }
    for(i = 0; i < children.size; i++) {
       children[i].doSomething();
       children[i].traverse();
   }
}
于 2013-01-23T07:27:17.547 に答える