开发者社区> 问答> 正文

在不使用访问者模式的情况下如何在一个SelectNode类中实现extractFunctions方法

在不使用访问者模式的情况下,如何在一个 SelectNode 类中实现 extractFunctions 方法?

展开
收起
不吃核桃 2024-07-31 13:26:26 10 0
1 条回答
写回答
取消 提交回答
  • 在不使用访问者模式的情况下,可以在 SelectNode 类中直接增加一个 extractFunctions 成员方法。这个方法会遍历并调用其子结构(如 FieldsNode 和 WhereNode)的 extractFunctions 方法,并将结果合并后返回。例如:

    java
    class SelectNode extends SqlNode {
    // ... 其他成员变量和构造函数 ...

    public List<String> extractFunctions() {  
        List<String> res = new ArrayList<>();  
        // 调用子结构的 extractFunctions  
        res.addAll(fields.extractFunctions());  
        // 注意:这里应该是 where.extractFunctions(),而不是 selectNode.extractFunctions(),因为 selectNode 是当前对象  
        res.addAll(where.extractFunctions());  
        return res;  
    }  
    

    }

    2024-07-31 14:01:40
    赞同 3 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载