请告诉我ASTNode(org.eclipse.jdt.core.dom.ASTNode)的哪个子类将使用Equality运算符(==)的语句。
我需要找到代码中的实例,其中非原始类型(例如:Integer)的比较是使用'=='运算符完成的。我想确保'=='运算符仅用于基本类型(例如:int)。
我有 Java代码逻辑 来执行此检查( 使用JDT库 ),但不确定 我必须访问哪种类型的ASTNode 才能访问此类声明。
答案 0 :(得分:1)
您需要查找'InfixExpressions',其中'运算符'是==(或InfixExpression.Operator.EQUALS)。
请注意,您只需使用ASTView自行找出问题的答案。
答案 1 :(得分:0)
这完全取决于你。你的AST是如何构建的?
一般来说,这就是我要做的事情:
EqualityNode : Node
{
Node LHS;
Node RHS;
}
至于确保语法正确性,那就是某人不这样做:
if == else
在将节点添加到AST之前,应由解析器检查。