В потоках Java действительно заглядывать только для отладки?
Я читаю о потоках Java и открываю для себя новые вещи. Одна из новых вещей, которую я нашел, былаpeek()
функция. Почти все, что я читал в peek, говорит, что его следует использовать для отладки ваших потоков.
Что делать, если у меня был поток, где у каждой учетной записи есть имя пользователя, поле пароля и метод login () и loggedIn ().
у меня тоже есть
Consumer<Account> login = account -> account.login();
а также
Predicate<Account> loggedIn = account -> account.loggedIn();
Почему это так плохо?
List<Account> accounts; //assume it's been setup
List<Account> loggedInAccount =
accounts.stream()
.peek(login)
.filter(loggedIn)
.collect(Collectors.toList());
Теперь, насколько я могу судить, это именно то, что он должен делать. Это;
Принимает список аккаунтовПытается войти в каждую учетную записьОтфильтровывает любой аккаунт, который не вошел в системуСобирает зарегистрированные аккаунты в новый списокВ чем недостаток того, чтобы делать что-то подобное? По какой причине я не должен продолжать? Наконец, если не это решение, то что?
Исходная версия этого использовала метод .filter () следующим образом;
.filter(account -> {
account.login();
return account.loggedIn();
})