我有一个MyObject列表,如下所示
List<MyObject> myObjList; 其中MyObject是定义如下的类
public class MyObject{
private String status;
private double amount;
}现在,我希望仅当数量不为空并且状态代码既不为XX也不为YY时,才从列表中获取金额总和
我知道我可以在java上做到这一点,但我需要在胸腺叶上做到这一点,这是我尝试过的,但它不起作用。
aggregates.sum(myObjList.?[amount!= null && (status!='XX' || status!='YY')].![amount])我没有收到任何错误。我不确定我在这里做错了什么。
发布于 2019-10-17 04:14:01
不工作是什么意思?你打错电话了吗?无论如何,您的布尔表达式是不正确的。该表达式读取(status != 'XX' || status != 'YY'),它将匹配所有记录。
例如,如果为status = 'XX',则:
('XX' != 'XX' || 'XX' != 'YY') => (false OR true) => true同样的事情也发生在YY上
('YY' != 'XX' || 'YY' != 'YY') => (true OR false) => true除此之外,一切似乎都很适合我。更正表达式(不需要状态的括号,除非您认为它读起来更好):
${#aggregates.sum(myObjList.?[amount != null && (status != 'XX' && status!='YY')].![amount])}https://stackoverflow.com/questions/58420860
复制相似问题