如何将FieldDeclaration
(类型:ASTNode)转换为IField
(类型:JavaElement)。是否可以从 FieldDeclaration ASTNode 获取绑定,就像对于 MethodDeclaration 节点的 node.resolveBinding() 一样。
需要:我正在访问具有公共常量的类中的 FieldDeclaration 节点,并希望在项目中搜索该字段的引用。我正在使用 JDT 的 SearchEngine。为此,我想创建一个搜索模式,如下所示:
SearchPattern.createPattern(iField, IJavaSearchConstants.REFERENCES);
我已将此作为对我的一个问题的评论,但没有得到相同的答案。将其作为单独的问题发布。
提前感谢您的回答。
回复迪帕克的回答。
使用您的方法,我可以按如下方式检索 JavaElement
List<VariableDeclarationFragment> fragments = node.fragments();
VariableDeclarationFragment fragment = fragments.get(0);
IJavaElement fieldElement = fragment.resolveBinding().getJavaElement();
如果我传递这个 IJavaElement 来创建搜索模式而不是 IField,它将返回与 IField 相同的结果。