eat*_*ode 4 java exception java-stream
考虑下面的虚拟代码:
List<Integer> intList = new ArrayList<>();
intList.add(10);
intList.add(20);
intList.add(30);
intList.stream().filter(i -> i > 40)
.throwIf(size of list <= 0)
.collect(Collectors.toList());
Run Code Online (Sandbox Code Playgroud)
java流中是否有任何功能可以实现上述代码?
注意:上面的代码只是我正在做的事情的表示,它不是我正在寻找的确切代码.
您可以检查是否有任何元素通过了您的过滤器,如果没有,则使用Optional's orElseThrow抛出异常:
Integer match =
intList.stream()
.filter(i -> i > 40)
.findAny()
.orElseThrow(...);
Run Code Online (Sandbox Code Playgroud)
当然,这只会给你一个在没有抛出异常时传递过滤器的元素,所以我不确定它是不是你想要的.