使用java Stream转换一些逻辑

问题描述 投票:2回答:1

我想使用Java8 Stream转换一些逻辑。我们该如何修改代码?

public boolean isBFOrder(final BFReturn pReturnRequest) {
        ArrayList<BFReturnShip> shipGroupList =pReturnRequest.getShipGroupList();      
        Boolean bfOrder = false;
        for(BFReturnShip bfReturnShip : shipGroupList) {
            if(bfReturnShip.getModeOfReturn().equals(TYPE)) {
                bfOrder = true;
            } else {
                return false;
            }
        }
        return bfOrder;
    }
java java-8 java-stream
1个回答
5
投票
return pReturnRequest.getShipGroupList()
                     .stream()
                     .allMatch(i -> i.getModeOfReturn().equals(REFUND_ONLY));

只要pReturnRequest.getShipGroupList()永远不会null

正如@Holger指出的那样,我们可以通过覆盖列表空白的情况来改进上面的内容。

final List<BFReturnShip> list = pReturnRequest.getShipGroupList();
return !list.isEmpty() && 
    list.stream().allMatch(i -> i.getModeOfReturn().equals(REFUND_ONLY));
© www.soinside.com 2019 - 2024. All rights reserved.