gpt4 book ai didi

java - 如何使用antlr或javaparser查找Java中将字符串文字分配给变量的所有赋值语句?

转载 作者:太空宇宙 更新时间:2023-11-04 09:54:20 25 4
gpt4 key购买 nike

我正在尝试在 Java 中找到硬编码的字符串赋值语句。我正在尝试使用 antlr 或 javaparser,但不知道如何查找赋值语句?

Javaparser 似乎是一个不错的选择。它支持声明等。我试图找到变量声明等,但不是赋值语句。我如何使用它来查找将字符串文字分配给变量的赋值语句。

最佳答案

这是我使用的一种方法。

  • 生成示例 Java 文件的可视化 AST,例如包含您要查找的硬编码表达式的文件。 JavaParser 可以输出 DOT 文件(例如 blog entry ),这是在 AST 中查找您感兴趣的节点的好方法。
  • 我从可视化中看到我感兴趣的节点是带有初始值设定项的 VariableDeclarator,因此我遵循 example使用 VoidVisitorAdapter 并覆盖相应的 visit 方法。一个好的 IDE (IntelliJ) 帮助我完成了剩下的事情:

    public void visit(VariableDeclarator variableDeclarator, Void arg) {
    super.visit(variableDeclarator, arg);
    variableDeclarator.getInitializer().ifPresent(expression -> {
    expression.ifStringLiteralExpr(stringLiteralExpr -> {/* do something */})
    }

关于java - 如何使用antlr或javaparser查找Java中将字符串文字分配给变量的所有赋值语句?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54363810/

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