Почему метод stream average () возвращает OptionalDouble вместо double? - PullRequest
0 голосов
/ 28 ноября 2018

Сегодня, когда я писал код, используя среднее значение потока, я узнал, что среднее значение потока возвращает OptionalDouble вместо double.Я знаю, почему OptionalDouble используется для.

Что еще может быть возвращено, когда мы вызываем среднее значение потока, чтобы нам потребовался OptionalDouble?

Пример действительно будет оценен,Заранее спасибо.

Мой код указан ниже:

OptionalDouble average = persons.stream()
            .mapToInt(person -> person.getAge())
            .average();
if(average.isPresent()) {
    System.out.println(average.getAsDouble());
}

Здесь persons - это ArrayList класса Person.

1 Ответ

0 голосов
/ 28 ноября 2018

OptionalDouble возвращается просто потому, что поток может быть пустым, и это действительно хороший способ позволить пользователю решить, что делать в "нет значения" case, т.е. вы можете указать альтернативное значение с помощью orElse, выполнить другую операцию с помощью ifPresent, вызвать исключение с помощью orElseThrow и т. Д.

...