我正在尝试使用thymeleaf aggregate
实用工具从下面的列表中查找工资总额
th:text="${#aggregates.sum(myList.![salary])}"
此处myList
是MyObjct
的列表,如下所示
List<MyObject> myList;
public class MyObject{
private String name;
private double salary;
//getter setter
}
在列表中的每个项目上薪水为null
之前,一切正常。在这种情况下,我会出错
java.lang.IllegalArgumentException: Cannot aggregate on iterable containing nulls
如何检查列表中的所有项目是否都是null
,以防止出现此错误。
答案 0 :(得分:1)
首先使用collection selection来消除薪水为null
的职位。
${#aggregates.sum(myList.?[salary != null].![salary])}
选择集合会创建一个新列表,其中每个元素都满足条件。在这种情况下,我将从myList创建一个新列表,其中列表中的每个项目的薪水都为非空(salary != null
。