java—如何使用lambda表达式引发异常

xqkwcwgp  于 2021-06-29  发布在  Java
关注(0)|答案(1)|浏览(487)

如果数组包含负数,我需要抛出一个异常。
使用java8特性的最佳实践是什么?

Integer array = {11, -10, -20, -30, 10, 20, 30};

array.stream().filter(i -> i < 0) // then throw an exception
hyrbngr7

hyrbngr71#

你可以用 Stream::anyMatch 返回一个布尔值,如果为真,则抛出如下异常:

boolean containsNegativeNumber = array.stream().anyMatch(i -> i < 0);
if (containsNegativeNumber) {
    throw new IllegalArgumentException("List contains negative numbers.");
}

或者直接说:

if (array.stream().anyMatch(i -> i < 0)) {
    throw new IllegalArgumentException("List contains negative numbers.");
}

相关问题