如果一個 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 () 完美收工!!!