给定一种方法,我想识别未使用的变量。我目前正在查看的格式保证有一个断言语句作为每个方法的最后一行。
我正在使用 JavaParser 解析每个方法,列出语句并列出该方法中使用的所有变量。
如何检索最后一条语句中使用的所有变量?
private static class MethodVisitor extends VoidVisitorAdapter<Object> {
@Override
public void visit(MethodDeclaration n, Object arg) {
System.out.println("Method: " + n.getName());
BlockStmt body = n.getBody();
List<Statement> statements = body.getStmts();
new VariableVisitor().visit(n, null);
Statement lastStmt = statements.get(statements.size() - 1);
for (Statement st : statements) {
System.out.println("Statement: " + st.toString());
}
System.out.println("\n\n");
}
}
private static class VariableVisitor extends VoidVisitorAdapter<Object> {
@Override
public void visit(VariableDeclarationExpr n, Object arg) {
List<VariableDeclarator> myVars = n.getVars();
for (VariableDeclarator vars : myVars) {
System.out.println("Variable Name: " + vars.getId().getName());
}
System.out.println();
}
}