gpt4 book ai didi

java - org.eclipse.jdt.core.dom.ASTNode 的 child

转载 作者:搜寻专家 更新时间:2023-10-31 19:57:01 25 4
gpt4 key购买 nike

使用 Eclise JDT,我需要检索任何 ASTNode 的子节点。有没有我可以使用的实用方法?

我现在能想到的唯一方法是子类化 ASTVisitor 并手动处理每种节点以找到其子节点。但是研究每种节点类型需要大量工作。

最佳答案

我将从查看 ASTView Plugin 的来源开始,因为它也做同样的事情。

基于

中的代码
  • org.eclipse.jdt.astview.views.ASTViewContentProvider.getNodeChildren(ASTNode)
  • org.eclipse.jdt.astview.views.NodeProperty.getChildren()

所需的代码应该是这样的

public Object[] getChildren(ASTNode node) {
List list= node.structuralPropertiesForType();
for (int i= 0; i < list.size(); i++) {
StructuralPropertyDescriptor curr= (StructuralPropertyDescriptor) list.get(i);
Object child= node.getStructuralProperty(curr);
if (child instanceof List) {
return ((List) child).toArray();
} else if (child instanceof ASTNode) {
return new Object[] { child };
}
return new Object[0];
}
}

关于java - org.eclipse.jdt.core.dom.ASTNode 的 child ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11841789/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com