How to fix java lambda filter(missing return statement) with future

Ocean :

How to solve java lambda filter future collection?

I got a future collection, And I want to filter out the false result returned in the collection, but using lambda to report (Missing return statement), I want to get a collection looks like List<Map<String, Object>>. What should I do to achieve filtering?

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

The Map<String, Object> structure looks like this {"success":"false", "msg":"I got error"}

Eran :

You must have return statements in all execution paths:

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();

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=93821&siteId=1