如果一个 Stream 流没有终结操作,那么这个流的中间操作不会执行
这是我今天写的代码,我发现最后 list 里并没有数据,然后我就 Debug,在 Debug 时我发现 :整一个 peek () 操作都没有执行,直接跳过了
List<JSONObject> list = new ArrayList<>();
sbdqas.queryAll(qs).stream()
.peek(AbstractStandingBookData -> {
Map<String, String> contentMap = AbstractStandingBookData.toContentMap();
contentMap.put("totalReceivables", AmountUtil.convertAmountSmallFormat(contentMap.get("totalReceivables")));
contentMap.put("totalPayable", AmountUtil.convertAmountSmallFormat(contentMap.get("totalPayable")));
list.add(new JSONObject(contentMap));
});
后面我改造了代码,直接 map () 操作返回 JSONObject,然后终结操作 toList () 完美收工!!!