让变量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,但它真的很大,到目前为止我无法找到它。
答案 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中