gpt4 book ai didi

java - 如何检查 Java 8 Stream 是否为空?

转载 作者:IT老高 更新时间:2023-10-28 11:43:59 26 4
gpt4 key购买 nike

如何检查 Stream 是否为空,如果不是则抛出异常,作为非终端操作?

基本上,我正在寻找与下面的代码等效的东西,但没有实现中间的流。特别是,在终端操作实际使用流之前不应进行检查。

public Stream<Thing> getFilteredThings() {
Stream<Thing> stream = getThings().stream()
.filter(Thing::isFoo)
.filter(Thing::isBar);
return nonEmptyStream(stream, () -> {
throw new RuntimeException("No foo bar things available")
});
}

private static <T> Stream<T> nonEmptyStream(Stream<T> stream, Supplier<T> defaultValue) {
List<T> list = stream.collect(Collectors.toList());
if (list.isEmpty()) list.add(defaultValue.get());
return list.stream();
}

最佳答案

这在很多情况下可能就足够了

stream.findAny().isPresent()

关于java - 如何检查 Java 8 Stream 是否为空?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26649062/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com