Лямбда - если что-нибудь делает что-нибудь или еще что-то - PullRequest
0 голосов
/ 19 мая 2019

Можно ли сделать всю эту логику с помощью одного лямбда-выражения?

boolean isTrue = myList.stream().anyMatch(m -> m.getName().equals("a");         

if(isTrue) { do something } 
else { do something }

1 Ответ

2 голосов
/ 19 мая 2019

Поскольку Java 9 Optional добавлен класс

public void ifPresentOrElse​(Consumer<? super T> action, Runnable emptyAction)

Также вместо anyMatch(..), который возвращает boolean, вы можете использовать filter(..).findAny(), которыйвозвращает Optional.

Таким образом, вы можете написать код как

yourStream
    .filter(..)
    .findAny() //returns Optional
    .ifPresentOrElse(
        // action when value exists 
        value -> System.out.println("There was a value "+value),
        // action when there is no value
        () -> System.out.println("No value found")
    );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...