0

我接手了某人的项目,我遇到了一个函数,它需要一个条件并检查该条件是否有孩子。如果是,它将检查孩子是否是物体或其他条件。如果它是一个对象,它将继续执行逻辑,如果它是条件,它将继续检查它下面的内容等等......我知道这太复杂了,我无法解释更多但我为场景写了一个类似的逻辑。

在我的示例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;
}

在此先感谢您的帮助。

4

0 回答 0