让我们介绍一下课程
NutritionAccumulator:
class NutritionAccumulator{ private double fat = 0.; private double carbs = 0.; private double fiber = 0.; private double protein = 0.; public NutritionAccumulator() { } public NutritionAccumulator(double fat, double carbs, double fiber, double protein) { this.fat = fat; this.carbs = carbs; this.fiber = fiber; this.protein = protein; } public NutritionAccumulator add(NutritionAccumulator that){ return new NutritionAccumulator(this.fat + that.fat, this.carbs + that.carbs, this.fiber + that.fiber, this.protein + that.protein ); }}现在我们可以编写简单的stream reduce:
Optional.ofNullable(response.body()).stream().reduce( new NutritionAccumulator(), (acc, fudNut) -> new NutritionAccumulator( fudNut.getTotalFat(), fudNut.getTotalCarbohydrate(), fudNut.getDietaryFiber(), fudNut.getProtein() ).add(acc), NutritionAccumulator::add );
最后,您可以将结果从上方传递给生成器。



