J'ai le modèle suivant:
public class WeightChange {
private float value;
public float getValue() {
return value;
}
public void setValue(float value) {
this.value = value;
}
}
et collection:
private List<WeightChange> weightChanges;
J'ai implémenté une fonction qui obtient une valeur de poids moyenne en utilisant Java 8 fonctionnalités:
public float getAvgChangedWeight() {
return (float) weightChanges.stream().mapToDouble(WeightChange::getValue).average().getAsDouble();
}
Pourriez-vous s'il vous plaît aider à l'améliorer, car je ne pense pas que le casting au double soit une bonne idée.
Il lève également une exception lorsque la collection weightChanges
est vide. Comment peut-on l'améliorer dans ce cas?
Pour répondre à la deuxième partie de votre question, si vous souhaitez éviter l'exception lorsque la liste est vide et renvoyer une valeur double
, utilisez orElse
au lieu de getAsDouble
:
return weightChanges.stream()
.mapToDouble(WeightChange::getValue)
.average()
.orElse(Double.NAN);