使用java流转换某些逻辑

使用java流转换某些逻辑,java,java-8,java-stream,Java,Java 8,Java Stream,我想使用Java8流转换一些逻辑。我们应该如何修改代码 public boolean isBFOrder(final BFReturn pReturnRequest) { ArrayList<BFReturnShip> shipGroupList =pReturnRequest.getShipGroupList(); Boolean bfOrder = false; for(BFReturnShip bfReturnShip

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

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;
    }
公共布尔isBFOrder(最终BFReturn PRETURN请求){
ArrayList shipGroupList=pReturnRequest.getShipGroupList();
布尔顺序=假;
对于(BFReturnShip BFReturnShip:shipGroupList){
if(bfReturnShip.getModeOfReturn().equals(TYPE)){
bfOrder=真;
}否则{
返回false;
}
}
退回订单;
}
前提是
pReturnRequest.getShipGroupList()
从不为
null

正如@Holger所指出的,我们可以通过覆盖列表为空的情况来改进上述内容

final List<BFReturnShip> list = pReturnRequest.getShipGroupList();
return !list.isEmpty() && 
    list.stream().allMatch(i -> i.getModeOfReturn().equals(REFUND_ONLY));
final List List=pReturnRequest.getShipGroupList();
回来!list.isEmpty()&&
list.stream().allMatch(i->i.getModeOfReturn().equals(仅限退款));

谢谢您的回复。但是getModeOfReturn()是BFReturnShip的方法。这是一些不起作用的东西。你能建议这里有什么变化吗@安得烈Tobilko@rand它应该可以工作,因为
i
BFReturnShip
的一个实例,我们在itpReturnRequest.getShippingGroupList().stream()上调用
getModeOfReturn
。allMatch(i->((BFReturnShip)i.getModeOfReturn().equals(.return_));我做了一些改变。需要投回BF飞船。现在它开始工作了。但是无论如何,谢谢你的建议。@rand如果你必须强制转换,
pReturnRequest.getShippingGroupList()
有问题。请显示
getShipGroupList
签名对于空列表,原始代码将返回
false
final List<BFReturnShip> list = pReturnRequest.getShipGroupList();
return !list.isEmpty() && 
    list.stream().allMatch(i -> i.getModeOfReturn().equals(REFUND_ONLY));