int + int
делает то же самое.Эта проблема не в sum()
, а в том, что вы используете слишком ограниченный тип.
long sum = IntStream.of(Integer.MAX_VALUE, 1)
.asLongStream()
.sum();
System.out.println(sum);
отпечатки
2147483648
Все типы данных имеют ограничения, и вам необходимо знатьиз них при их использовании.Вы можете утверждать, что было бы лучше, чтобы ошибка создавалась, а не молча давала неожиданный результат, но это не то, как реализованы типы.