stream流中如何避免空指针
时间: 2023-05-04 13:06:07 浏览: 313
避免实体类空指针异常,并赋初值,可扩展
在Java中,我们可以使用Optional类来避免空指针异常。Optional是一个容器对象,它可以包含一个非空的值,也可以不包含任何值。我们可以通过调用stream流的map()方法来将值映射为Optional对象,然后使用filter()方法过滤掉空值,最后使用orElse()或orElseThrow()方法来处理空值的情况。
例如:
List<String> list = Arrays.asList("hello", null, "world", null);
List<String> result = list.stream()
.map(Optional::ofNullable)
.filter(Optional::isPresent)
.map(Optional::get)
.collect(Collectors.toList());
在上面的例子中,我们先将每个值映射为Optional对象,然后过滤掉空值。最后使用orElse()方法获取Optional对象中的值,如果值为空则使用默认值。这样我们就可以避免空指针异常的发生。
阅读全文