У моего коллеги была ошибка, связанная с нашим предположением, что пустой поток, вызывающий allMatch()
, вернет false
.
if (myItems.allMatch(i -> i.isValid()) {
//do something
}
Конечно, это наша вина за допущение и не чтение документации. Но я не понимаю, почему поведение allMatch()
по умолчанию для пустого потока возвращает true
. Каковы были причины для этого? Подобно anyMatch()
(который возвращает false), эта операция используется императивным способом, который отсылает монаду и, вероятно, используется в инструкции if
. Учитывая эти факты, существует ли какая-либо причина, почему для большинства применений желательно иметь allMatch()
по умолчанию true
в пустом потоке?