我有一个自定义对象,其中包含一些“计数器”字段。这个对象在将被递归调用的函数中获取那些递增的字段。所以我需要在每次调用函数时重新创建对象,以便重置计数器字段,但如果函数处于递归调用中,则不重新创建。有道理?
目前,我通过重载方法来做到这一点,这样它就不是真正的递归,而是我传递了带有计数器的同一个对象,以便我的计数得以保留。
基本上,下面是我现在正在做的事情:
static Counter count(Object parent)
{
Counter newCounter = new Counter();
newCounter = count(parent, newCounter);
return newCounter;
}
static Counter count(Object parent, Counter currentCounter)
{
Object cur = new Object(parent);
if(cur.isChild())
Counter.child++;
else if(cur.isParent())
{
Counter.parent++;
count(cur, currentCounter);
}
return currentCounter;
}
有一个更好的方法吗?或者我不需要重载的方式?哦,我确实需要保持静态的主要方法,由于限制,我无法轻易更改系统内的其他地方。