遵循此https://olingo.apache.org/doc/odata4/tutorials/sqo_f/tutorial_sqo_f.html文档。
从查询选项获取表达式:
Expression filterExpression = filterOption.getExpression();
我们假设上面的代码行包含([[ManagerId] eq 1] )查询。 这意味着 ManagerId 是左侧的对象 eq 是运算符 1 是正确的对象
然后遍历集合中的所有实体并计算给定实体的表达式结果:
Object visitorResult = filterExpression.accept(expressionVisitor);
因此,每当调用accept()方法时,它都会调用ExpressionVisitor接口实现的visitBinaryOperator(BinaryOperatorKind运算符,左对象,右对象)方法。此时,调用visitBinaryOperator()方法的左侧对象将传递为null。
这是真正的根本原因,很高兴知道乡亲的提示和技巧。预先谢谢!。