当前位置: 首页 > 知识库问答 >
问题:

从JDT AST解析源代码时,我可以使用JDT搜索引擎吗

公羊光明
2023-03-14

我正在使用 JDT AST 来解析给定的源。我想找到给定对象/变量的引用,当它在使用AST时触发相关访问者时。例如:考虑以下代码:

public class SampleClass {
    public void printMe(){
        System.out.println("hello");
    }

    public static void main(String a[]){
        SampleClass s =new SampleClass();
        // do some other work
        s.printMe();
    }
}

当我解析上述代码时,当涉及到“s”的变量声明时,它将调用“VariableDeclarationFragment”类型的访问者方法。此时,在访问其余代码行之前,我想找出变量“s”的所有引用。这可能吗?我考虑使用JDT SearchEngine并在此时调用以分别解析引用。但没有成功。我可以只使用AST本身吗?

请注意,我在独立程序中使用JDT AST,而不是作为Eclipse插件项目。在这种情况下,我有点困惑是否可以使用SearchEngine,因为它无法解析给定代码单元(类、方法等)的IJava*类型。请分享你的专业知识来解决这个问题。

共有1个答案

晏沈义
2023-03-14

使用搜索引擎是矫枉过正。搜索引擎是为了跨文件搜索。并且,如果没有启动工作台(即后台没有Eclipse实例),就不能使用搜索引擎。

看起来您只想在同一个文件中查找对变量的引用。这里最好的选择是创建一个访问者,该访问者将访问整个文件并查找对变量的引用。由于这些是变量,并且它们的作用域不会转义它们在其中声明的方法,因此您只需要访问该方法。

像这样:

class MyVariableVisitory extends ASTVisitor {
    public boolean visit(SimpleName node) {
        if (node.getIdentifier().equals(variableToLookFor)) {
            acceptMatch(node);
        }
        return true;
    }
}

因为您只是在寻找对变量的引用,所以您只需要查看< code>Name ast节点。

 类似资料:
  • 我需要在工作区的所有项目的源目录中找到所有Java类型(类、接口、枚举、注释),名称为字符串。例如,输入“测试”将返回所有项目源目录中以“测试”开头的所有Java类型。我试图用JDT的搜索引擎处理这个问题,如下所示 上面的代码返回了一些不在Eclipse工作区中的java类型。例如: 找到:TestSimple(未打开)[在TestSimple.class[在 TestSimple.java是我的

  • 我正在寻找一种方法来改进Eclipse的搜索引擎类的运行时,或者另一种可以取代它的搜索技术。目前,我正在搜索给定项目的源文件中所有方法的所有引用。此技术适用于较小的项目,但运行时呈指数级增长,并且在超过几个 MB 的项目中变得无用。 我用来查找方法引用的当前代码是: 范围、引擎、模式、参与者和请求者都是全局变量。 我目前没有保存结果,因为现在我担心的只是搜索的运行时。直接扫描(遍历每个源文件并保存

  • 搜索引擎分为两部分: 时间筛选 和 搜索引擎 (详情) 1.时间筛选 便捷按钮有今日、昨日、前日、上周 X、近七天,并且能自定义选择时间段来得出想要的结果报表 2.搜索引擎 (时间段详情) 选择日期,查看来自对应时间段内,各个搜索引擎的访问量比例

  • lucene 和 es 的前世今生 lucene 是最先进、功能最强大的搜索库。如果直接基于 lucene 开发,非常复杂,即便写一些简单的功能,也要写大量的 Java 代码,需要深入理解原理。 elasticsearch 基于 lucene,隐藏了 lucene 的复杂性,提供了简单易用的 restful api / Java api 接口(另外还有其他语言的 api 接口)。 分布式的文档存储

  • 搜索引擎 关键参数 报告 method metrics(指标, 数据单位) 其他参数 搜索引擎 source/engine/a pv_count (浏览量(PV)) pv_ratio (浏览量占比,%) visit_count (访问次数) visitor_count (访客数(UV)) new_visitor_count (新访客数) new_visitor_ratio (新访客比率,%) ip

  • 更改历史 * 2018-05-07 胡小根 初始化文档 1 历史、现状和发展 1.1 历史 1.2 现状 1.3 发展 难点:预测发展方向。 2 安装和使用 2.1 安装 2.2 使用 创建index和type 上传单条数据 批量上传数据 查询 2.3 示例 2.4 最佳实践 难点:最佳实践,超出于示例,应该归纳总结出积累的技巧。 3 同类技术对比 难点:归纳比对项 参考资料 El