我试图在Java中找到硬编码的字符串赋值语句。我正在尝试使用antlr或javaparser,但没有得到如何查找赋值语句的信息?
Javaparser似乎是一个不错的选择。它支持声明等。我试图找到变量声明等,但没有赋值语句。我该如何使用它来找到将字符串文字分配给变量的赋值语句。
答案 0 :(得分:0)
我会尝试创建一个侦听器;通过覆盖适当的方法来监听assignment
语句(Java8.g4中的1196行),例如:
public override void ExitAssignment(Java8Parser.AssignmentContext context); // C#
检查通过的context
是否
•assignmentOperator
是可以应用于字符串(=
,+=
)的内容
•并且如果expression
解析为CharacterLiteral
或StringLiteral
您可以通过context.assignmentOperator()
和context.expression()
方法获得信息。
答案 1 :(得分:0)
这是我使用的一种方法。
我从可视化中看到,我感兴趣的节点是带有初始化程序的VariableDeclarator
,所以我遵循example的使用VoidVisitorAdapter
并覆盖了相应的{ {1}}方法。一个好的IDE(IntelliJ)可以帮助我完成其他工作:
visit