使用java流转换某些逻辑
我想使用Java8流转换一些逻辑。我们应该如何修改代码使用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
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));