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 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 回答
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 回答