我有一个函数逻辑,如果存在具有空项和当前价格属性的价格dto,该函数逻辑将使处理失败。
我想知道在Java中是否有更有效或更清洁的方法来做到这一点。在信息流或其他任何信息中。
这是我当前的代码:
List<PriceDto> priceDtoList = thisIsAClass.getPriceDtos();
for (PriceDto priceDto: priceDtoList) {
if (priceDto.getItem() == null && priceDto.getCurrentPrice() == null)
{
thisIsAnotherClass.failTheProcess();
break;
}
}
thisIsAnotherClass.anotherProcess();
预先感谢您的帮助!
答案 0 :(得分:0)
在较新版本的Java中,更常见的方式是使用findFirst
或findAny
。
例如,
List<PriceDto> priceDtoList = thisIsAClass.getPriceDtos();
Optional<PriceDto> result = list
.stream()
.filter(dto -> dto.getItem() ==null && dto.getCurrentPrice() == null)
.findAny();
if(result.isPresent()) {
thisIsAnotherClass.failTheProcess();
}
thisIsAnotherClass.continueTheProcess();
如果列表中有很多数据,您还可以考虑向流中添加.parallel()
调用以提高搜索的整体性能。