编译MVEL表达式后,我可以访问最上面的ASTNode。
ExpressionCompiler compiler = new ExpressionCompiler(<expression>, true);
ASTNode node = compiler.compile().getFirstNode();但是,我希望拥有对ASTNode信息的完全访问权限,包括它的左子节点和右子节点。
ASTNode left = node.getLeftNode();
ASTNode right = node.getRightNode();
...有办法做到这一点吗?
发布于 2021-09-05 02:18:14
如果表达式具有二元运算符,例如(a + b),则相应的ASTNode类型为BineryOperation。因此,可以使用以下代码来解决此问题:
ExpressionCompiler compiler = new ExpressionCompiler("a + b", true);
ASTNode node = compiler.compile().getFirstNode();
BinaryOperation biOptNode= (BinaryOperation)node;
ASTNode left = biOptNode.getLeftNode();
ASTNode right = biOptNode.getRightNode();https://stackoverflow.com/questions/69054068
复制相似问题