我被困在一个特定的问题上,那就是从VariableDeclarationStatement中提取一个infixexpression。例如:

字符串s ='a'+'b'+'c';

这是VariableDeclarationStatement的一个实例。我需要从中删除infixexpression 'a'+'b'+'c'

我已经尝试过:1.尝试转换为字符串。但是没有转换回来的可能。

2.尝试转换为列表,但仍然不可能。

我已经尝试了上述方法来尝试操作和提取InfixExpression,请帮助我。

编辑

这是我所做的:

   if (node instanceof InfixExpression) {
        infixExpression= (InfixExpression) node;
    } else if (node.getParent() instanceof InfixExpression) {
        infixExpression= (InfixExpression) node.getParent();
    } else {            //while trying to get this proposal with spaces its reaching here.
        String nodeString =node.toString();
        String infixExp="s";
        int t;
    for (t=0;nodeString.charAt(t)!='=';t++);

        infixExp.concat(nodeString.substring(t+1, nodeString.length()));
        infixExpression = (InfixExpression)infixExp;            //this cast doesn't work here

    }

最佳答案

尚不清楚您要做什么。

public class InfixVisitor extends ASTVisitor {
    @Override
    public boolean visit(InfixExpression node) {
        // NOTE: node.toString() should only be used debugging.
        // Probably you could use it anyway.
        ...
        return super.visit(node);
    }
}


通过上述访问者,您可以通过以下方式访问所有InfixExpression节点:

ASTNode sourceNode = ...
sourceNode.accept(new InfixVisitor());

09-16 00:43