Java JDT检测简单语句

时间:2014-11-06 19:44:25

标签: java eclipse-jdt

让变量i初始化为:

int i = 0;

我试图检测简单的java变量,如:

i=i+1;

这可以使用JDT的访问者模式来完成,如:

public boolean visit(XXXXXXX node) {

   //something here


}

但是,我不确定XXXXX的名称会在第二个代码示例中给出我的声明。我已查看了http://help.eclipse.org/indigo/index.jsp?topic=%2Forg.eclipse.jdt.doc.isv%2Freference%2Fapi%2Forg%2Feclipse%2Fjdt%2Fcore%2Fdom%2FASTNode.html,但它真的很大,到目前为止我无法找到它。

2 个答案:

答案 0 :(得分:0)

为什么不使用setter来获得类似的结果?

int i = 0;

public void setI(int _i) {
    this.i = _i;
    // execute visit() code here
}

setI(i++);

虽然我不知道您需要监视变量值变化的上下文,但这似乎是一种快速替代方案。

答案 1 :(得分:0)

“i = i + 1”是ExpressionStatement(您的XXXXXXX)。里面的表达式是Assignment类型,您可以在其中检查左侧的运算符SimpleName和右侧的InfixExpression

分析代码的一个很棒的工具是ASTView。它可以显示编辑器中标记的任何代码的AST。您可以从更新站点http://www.eclipse.org/jdt/ui/update-site

将其安装到Eclipse中