我有一个用例来部分执行MVEL表达式并返回其余未知部分。例如,我有以下表达式
if(person.firstName == 'John' && person.buyingPreference == 'Cash') {result = new Result(..)}
人的名字是已知的,但是purchasePreference是未知的。假设有一个人的名字叫John,我想让MVEL告诉我,在buyPreference =='Cash'时将返回结果。 MVEL不必将结果和未知表达式一起返回给我。但是我需要一种方法来知道哪个条件可以使整个表达式为真并返回结果。
我还在考虑将表达式分为已知部分和未知部分的另一个方向,那么我只需要在MVEL内部执行已知部分。但是由于表达式是用String编写的,因此在没有UI或String解析的情况下,我看不出拆分规则的好方法。