我有以下方法:
private Optional<Car> findCarByID(String id, CarResponse carResponse) {
return carResponse.getCars().stream()
.filter(car -> car.getID().equalsIgnoreCase(id))
.findFirst();
但是carResponse有时可以为null,我想在尝试获取汽车并将其流式传输之前进行检查(引发了空指针异常)。我用“ if else”进行了检查,如下所示:
private Optional<Car> findCarByID(String id, CarResponse carResponse) {
if (carResponse!= null) {
return carResponse.getCars().stream()
.filter(car -> car.getID().equalsIgnoreCase(id))
.findFirst();
}
return Optional.empty();
}
有什么方法可以在lambda表达式的开头包含check carResponse!= null而不使用“ if else”吗?
答案 0 :(得分:1)
是正确的,在代码中添加另外optional
可能会使代码的可读性降低。尽管三元运算符可以为您节省几次按键操作。
return carResponse == null ? Optional.empty() : carResponse.getCars().stream()
.filter(car -> car.getID().equalsIgnoreCase(id))
.findFirst();