Как исправить Java-лямбда-фильтр (отсутствует инструкция возврата) с будущим - PullRequest
0 голосов
/ 20 декабря 2018

Как решить будущую коллекцию Java-лямбда-фильтра?

Я получил будущую коллекцию, и я хочу отфильтровать ложный результат, возвращенный в коллекции, но с помощью лямбда-выражения для отчета (отсутствует оператор возврата), яхочу получить коллекцию выглядит как List<Map<String, Object>>.Что я должен сделать, чтобы добиться фильтрации?

List<Future<Map<String, Object>>> future = 
    childIds.getChildOrder()
            .stream()
            .map(i -> service.submit(new some(i)))
            .collect(Collectors.toList());

            future.stream().filter(i -> {
                try {
                    i.get().get("success").equals(Boolean.FALSE);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                } catch (ExecutionException e) {
                    e.printStackTrace();
                }
            }).findAny().get().get();

enter image description here

Структура Map<String, Object> выглядит следующим образом {"success":"false", "msg":"I got error"}

1 Ответ

0 голосов
/ 20 декабря 2018

Вы должны иметь операторы возврата во всех путях выполнения:

future.stream().filter(i -> {
    try {
        return i.get().get("success").equals(Boolean.FALSE);
    } catch (InterruptedException e) {
        e.printStackTrace();
    } catch (ExecutionException e) {
        e.printStackTrace();
    }
    return false; // depending on what you wish to return in case of exception
}).findAny().get().get();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...