在不使用访问者模式的情况下,如何在一个 SelectNode 类中实现 extractFunctions 方法?
在不使用访问者模式的情况下,可以在 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;
}
}
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。