1

请让我知道带有相等运算符 (==) 的语句将出现在 ASTNode (org.eclipse.jdt.core.dom.ASTNode) 的哪个子类下。

我需要找出代码中使用“==”运算符完成非原始类型(例如:整数)比较的实例。我想确保“==”运算符仅用于原始类型(例如:int)。

我有执行此检查的Java 代码逻辑(使用 JDT 库),但不确定我必须访问哪种类型的 ASTNode才能访问此类语句。

4

2 回答 2

1

您需要查找“运算符”为 ==(或 InfixExpression.Operator.EQUALS)的“InfixExpressions”。

请注意,您可以简单地使用ASTView自己找出此类问题的答案。

于 2012-06-15T17:17:05.043 回答
0

这完全取决于你。您的 AST 结构如何?

一般来说,这是我会做的:

EqualityNode : Node 
{
  Node LHS;
  Node RHS;
}

至于确保语法正确性,那是有人不做的:

if == else

在将节点添加到 AST 之前,解析器应该对此进行检查。

于 2012-06-14T05:57:24.257 回答