我有下面的代码。即使我链接了一个 orElseGet 调用, findfirst 调用也会抛出 NullPointerException
orElseGet
findfirst
NullPointerException
int numberOfRetry = 5; String req = "abc"; String res = Stream.iterate(0, n -> n + 1).map(i -> { try { return req.substring(numberOfRetry - i); } catch (Exception e) { // log exception return null; .limit(1) .findFirst() .orElseGet(() -> "Exception");
但是,如果我按如下所示放入一个过滤器调用,它就能正常工作:
int numberOfRetry = 5; String req = "abc"; String res = Stream.iterate(0, n -> n + 1).map(i -> { try { return req.substring(numberOfRetry - i); } catch (Exception e) { // log exception