我接手了某人的项目,我遇到了一个函数,它需要一个条件并检查该条件是否有孩子。如果是,它将检查孩子是否是物体或其他条件。如果它是一个对象,它将继续执行逻辑,如果它是条件,它将继续检查它下面的内容等等......我知道这太复杂了,我无法解释更多但我为场景写了一个类似的逻辑。
在我的示例CondtionList
中扩展了Condition
类,树结构看起来像这样
condition
/ \
object condition
/ | \
object condition object
/ \
object condition
我在这里尝试做的是递归调用多层树状结构Condition
。它工作正常,直到它到达返回值,该返回值在它完成执行此函数之前反复回调我的递归。
这是我的代码:
private boolean[] isNumberEvenOrOdd(Condition condition){
boolean isEven = false;
boolean isOdd = false;
boolean[] isNumberEvenOrOdd = new boolean[2];
if(condition instanceOf ConditionList) {
for(Condition child : ConditionList.getConditions()){
if (child instanceOf ConditionList){
isNumberEvenOrOdd(child);
}
else{
if((Integer)child % 2 == 0) {
isEven = true;
}
else {
isOdd = true;
}
}
}
}
isNumberEvenOrOdd[0] = isEven;
isNumberEvenOrOdd[1] = isOdd;
return isNumberEvenOrOdd;
}
在此先感谢您的帮助。