我有一个这样的方法:
public static int calc(int a, int b) {
if (a >= b)
return a - b;
return 0;
}
我想知道在已知行号上使用的条件。在本例中,我的预期结果是条件的名称,例如“">=”。
我知道如何解析给定 ICompilationUnit
的 CompilationUnit
。但我怎样才能获得条件呢?
最佳答案
为此,您必须创建一个 ASTVisitor 它将访问所有中缀表达式。在访问者类中,访问方法将具有以下内容:
@Override
public boolean visit(InfixExpression node) {
Operator op= node.getOperator();
if(op.equals(Operator.GREATER) || op.equals(Operator.EQUALS) || ....)
conditionalInfixExpressionList.add(node);
return super.visit(node);
}
在 visit
方法内的 if 语句中,您必须检查中缀表达式是否是条件变量,并将其添加到列表中。
关于java - 如何使用 JDT-AST 提取已知行中的条件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35797552/