ASTParser:解析绑定后查找声明节点

2024-06-27

我创建了一个启用了绑定的 AST,当我稍后解析绑定时,我得到了一个有效的 ITypeBinding。 但是,当我想要获取绑定的声明 Node 时,它​​总是返回 null(除非 ITypeBinding 在 sourceFile 中声明)。

这是我的 AST 生成代码:

public void parseFunction(IFile sourceFile) {
        ICompilationUnit element = JavaCore.createCompilationUnitFrom(sourceFile);
        ASTParser parser = ASTParser.newParser(AST.JLS14);
        parser.setResolveBindings(true);
        parser.setKind(ASTParser.K_COMPILATION_UNIT);
        parser.setBindingsRecovery(true);
        parser.setSource(element);

        CompilationUnit cu = (CompilationUnit) parser.createAST(null);

        cu.accept(new ASTVisitor() {

            public boolean visit(FieldDeclaration variable) {
                ITypeBinding binding = variable.getType().resolveBinding();
                //binding is not null here
                ASTNode declartionNode = cu.findDeclaringNode(binding);
                //declartionNode is null here
                return false;
            }

        });
        return;
    }

任何帮助表示赞赏。


parser.setEnvironment(classpath, sources, encodings, true);

不见了。

否则,无法解析对不在已解析代码中但在类路径上某处的声明的绑定。

See ASTParser::setEnvironment https://help.eclipse.org/latest/topic/org.eclipse.jdt.doc.isv/reference/api/org/eclipse/jdt/core/dom/ASTParser.html#setEnvironment(java.lang.String%5B%5D,java.lang.String%5B%5D,java.lang.String%5B%5D,boolean)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ASTParser:解析绑定后查找声明节点 的相关文章

随机推荐

  • clang 无法独立解析我的 .h 文件

    我正在使用 libclang 的 python 绑定 但我认为这个问题是由 libclang 而不是 python 绑定引起的 我有一个标题object h ifndef OBJECT H define OBJECT H class Obj
  • 结合记忆和尾递归

    是否有可能以某种方式将记忆和尾递归结合起来 我目前正在学习 F 理解这两个概念 但似乎无法将它们结合起来 假设我有以下内容memoize函数 来自现实世界的函数式编程 http www manning com petricek let me
  • AS3 - 在正好 23 个空 Alpha 通道处,下面的图像停止绘制

    我注意到 在尝试绘制大量圆圈时 偶尔会出现某种视觉错误 某些圆圈无法正确绘制 好吧 我缩小了范围 并注意到如果同一位置有 23 个或更多 alpha 值为 00 的对象 则下面的对象不会绘制 它似乎是在逐个像素的基础上进行的 因为图像的某些
  • QUnit 与固定装置的奇怪行为,测试交替失败和通过

    我在 QUnit 中进行了以下设置 Dozen or so previous tests here test Test some markup generation function qunit fixture plugin jQuery
  • HttpWebRequest 在第二次调用时超时

    为什么以下代码在第二次 及后续 运行时超时 代码挂在 using Stream objStream request GetResponse GetResponseStream 然后引发 WebException 表示请求已超时 我已经尝试过
  • php向多个收件人发送邮件

    我可以通过在邮件程序中定义 id 来将电子邮件发送到一个电子邮件 id 但是当用户在表单中键入 消息和电子邮件 id 时 我无法理解如何发送到多个收件人 例如 我正在显示一个带有两个文本区域的表单 一个用于电子邮件 ID 一个用于自定义消息
  • 将 Facebook 图片 URL 上传到 Firebase 存储

    我正在尝试将用户的 Facebook 个人资料图片上传到 Firebase 存储 let dictionary result as NSDictionary let data dictionary objectForKey data let
  • 如何从 wsdl 创建 JAXWS Web 服务服务器骨架(不在 IDE 中)

    我找不到任何如何从服务器骨架 java pojo s 创建Web服务的地方 使用 JAXWS 的 wsdl 我看到的唯一教程是在 NetBeans 中使用自动化向导和在 eclipse 中使用 axis2 有人可以给我一些关于如何从给定的
  • 如何限制scrapy请求对象?

    所以我有一个蜘蛛 我认为它正在泄漏内存 结果当我检查 telnet 控制台 gt gt gt prefs 时 它只是从链接丰富的页面中抓取了太多链接 有时它会超过 100 000 个 现在我已经一遍又一遍地浏览文档和谷歌 但我找不到一种方法
  • 如何将 fields 参数传递到 Google Drive Python API 调用中

    I have results drive service files list body execute where body q query string maxResults 1 为了提高性能 我想限制返回的字段 如下所述 https
  • 如何在速度模板中检索哈希图值

    如何从速度模板中的以下哈希图中检索值 请帮忙 LinkedHashMap
  • 如何在 jQuery 中选择时对 DOM 元素进行排序?

    我的页面上有以下 DIV div Div 3 div div Div 2 div div Div 1 div div Div 6 div div Div 5 div div Div 4 div 我正在尝试使用 jQuery 代码选择 Div
  • 删除除一个之外的文件夹

    在 src 文件夹下有以下文件夹 daos business 和 model 我想使用 ant 脚本删除除 model 之外的所有文件夹 所以我尝试
  • 有适用于 Windows 的 Bonjour SDK 吗?

    我想知道如何在 Windows 上实现 bonjour 以便我可以在 Windows 上设置服务器并使用 iphone 客户端 中的 bonjour 服务访问 Windows 服务器 中的文件 谁能告诉我我们是否有适用于 Windows 的
  • 从外部 bash 设置环境变量

    我试图使用 PHP 从命令行 设置 bash 环境变量 但没有成功 buff array buff VARTESTKEY VARTESTVALUE buff export VARTESTKEY file put contents scrip
  • 如何正确使用 nsoperationqueue 的 autoreleasepool

    我有一个正在重构的应用程序 我刚刚实现了多线程 以便 UI 可以运行得更流畅 在 iPhone 模拟器中 我没有遇到任何泄漏 但在运行 iOS 4 2 的 iPhone 3G 上进行测试时 出现了内存泄漏 我已经做了很多搜索来使用操作队列实
  • 如何快速查看哪个 Git 分支是最新的?

    例如 如果 git 上有 4 个分支 如下所示 branch1 branch2 current branch branch3 newest commits here master oldest 我的问题是 如何从 git 命令行检查我当前的
  • while 之后无法访问的语句[重复]

    这个问题在这里已经有答案了 我只是修改代码 在以下代码中出现错误 int x 1 System out println x x while true x System out println x x 错误在最后一行 我可以知道错误 错误 无
  • Scrapy 抓取并跟踪 href 中的链接

    我对 scrapy 很陌生 我需要从 url 的主页跟踪 href 到多个深度 再次在 href 链接内我有多个 href 我需要遵循这些href 直到到达我想要抓取的页面 我的页面的示例 html 是 初始页 div class page
  • ASTParser:解析绑定后查找声明节点

    我创建了一个启用了绑定的 AST 当我稍后解析绑定时 我得到了一个有效的 ITypeBinding 但是 当我想要获取绑定的声明 Node 时 它 总是返回 null 除非 ITypeBinding 在 sourceFile 中声明 这是我