count()
возвращает long
, и не каждый long
может вписаться в int
, поэтому для сохранения результата в int
требуется явный приведение,Это не имеет ничего общего с Java-10.он всегда был там в предыдущих JDK.
Если вы не хотите разыгрывать, тогда альтернативой будет:
...
.filter(n -> n < 0)
.map(e -> 1)
.sum();
, но, как видно, это не так читабельно, как ваш примерпотому что код по существу говорит: «дайте мне суммирование элементов, которые проходят операцию фильтрации» вместо «дайте мне подсчет элементов, которые проходят операцию фильтрации».
Итак, в конечном итоге, если вам нужен результат как int , тогда переходите к приведению.