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

后端 未结 2 1410
北恋
北恋 2021-01-14 01:02

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

2条回答
  •  离开以前
    2021-01-14 01:58

    You can do this in one go and create the list with what you need.

    Include the return value to eliminate the IDE warning.

    List>> future =
            childIds.getChildOrder()
                    .stream()
                    .map(i -> service.submit(new Some(i)))
                    .filter(i -> {
                        try {
                            return Boolean.FALSE.equals(i.get().get("success"));
                        } catch (InterruptedException | ExecutionException e) {
                            e.printStackTrace(); //try to use a logger instead
                        }
                        return false;
                    })
                    .collect(Collectors.toList());
    

    I'd really take a look at what you're trying to do here though. There's likely a simpler way.

提交回复
热议问题