通过eclipse AST搜索MethodInvocation



我正在编写一个用于代码格式化的Eclipse插件,我需要在AST中检测方法调用,但我似乎无法做到。我目前使用getNodeType(),但它返回EXPRESSION_STATEMENT,当我调试时,我看到它的表达式类型确实是一个方法调用,但它仍然返回EXPRESSION_STATEMENT类型。

(我知道我错过了几个检查,但目前没关系,假设Then语句和Else语句只是system.out.println()的一个命令)

任何想法吗?

谢谢!

static boolean treatIfMethod(final AST ast, final ASTRewrite r, final IfStatement node){
  final ASTNode thenMethod=(ASTNode)((Block)node.getThenStatement()).statements().get(0),
          elseMethod=(ASTNode)((Block)node.getElseStatement()).statements().get(0);
  if (thenMethod.getNodeType()==ASTNode.METHOD_INVOCATION &&
          elseMethod.getNodeType()==ASTNode.METHOD_INVOCATION){
      ...
      }
 ...
}

调用ExpressionStatementgetExpression()方法来获取语句所表示的表达式。这应该是您正在寻找的MethodInvocation

相关内容

  • 没有找到相关文章

最新更新