Как сделать если-или операцию в лямбде - PullRequest
1 голос
/ 11 мая 2019

Я получаю всю информацию о книге в один список и фильтрую их по ключевому слову.

List<Book> books = bookService.getAllBooks();

List<Book> filteredBooks = books.stream().filter(b-> b.getName().contains(keyword) || b.getDescription().contains(keyword))

Но b.getDescription() может вернуть ноль, поэтому я получил исключение нулевого указателя.

Как я могу выполнить операцию в фильтре, как b.getName() OR IF !b.getDescription().isEmpty b.getDescription()?

1 Ответ

1 голос
/ 11 мая 2019

Использование:

List<Book> filteredBooks = books.stream()
                                .filter(b-> b.getName().contains(keyword) ||
                                            (b.getDescription() != null && b.getDescription().contains(keyword)));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...