保存到流管道中的数据库中

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

根据the documentation on Oracle's website

通常,不鼓励行为参数对流操作的副作用,因为它们通常会导致无意识地违反无状态要求以及其他线程安全危害。

这是否包括将流的元素保存到数据库?

想象以下(伪)代码:

public SavedCar saveCar(Car car) { SavedCar savedCar = this.getDb().save(car); return savedCar; } public List<SavedCars> saveCars(List<Car> cars) { return cars.stream() .map(this::saveCar) .collect(Collectors.toList()); }

此实现有哪些不利影响:

public SavedCar saveCar(Car car) { SavedCar savedCar = this.getDb().save(car); return savedCar; } public List<SavedCars> saveCars(List<Car> cars) { List<SavedCars> savedCars = new ArrayList<>(); for (Cat car : cars) { savedCars.add(this.saveCar(car)); } return savedCars. }

java java-8 functional-programming java-stream side-effects
2个回答
4
投票
绝对最简单的例子是:

1
投票
根据Oracle网站上的文档[...]
© www.soinside.com 2019 - 2024. All rights reserved.