Optional容器技术

Optional容器技术

Optional容器技术,一个容器对象,可能包含也可能不包含非空值。如果存在值, isPresent()将返回true ,而get()将返回该值。
提供了依赖于包含值是否存在的其他方法,例如orElse() (如果值不存在则返回默认值)和ifPresent() (如果值存在则执行代码块)。
这是一个基于值的类;在Optional的实例上使用身份敏感操作(包括引用相等 ( == )、身份哈希码或同步)可能会产生不可预测的结果,应该避免。

使用场景

通常与lambda进行搭配使用,当lambda出现lambda的时候会出现空指针的时候,流的结尾使用“findAny”修饰

返回一个描述流的某些元素的Optional ,如果流为空,则返回一个空的Optional 。
这是一个短路终端操作。
这个操作的行为是明确的非确定性的;可以自由选择流中的任何元素。这是为了在并行操作中实现最大性能;代价是对同一源的多次调用可能不会返回相同的结果。 (如果需要稳定的结果,请改用findFirst() 。)
返回值:
描述此流的某些元素的Optional ,如果流为空,则为空Optional
抛出:
NullPointerException – 如果选择的元素为 null

示例代码:

Optional<Rsvr> dsflzOptional = dsflzs.stream().filter(o -> o.getStcd().equals(station.getStcd())).findAny(); //封装
if (dsflzOptional.isPresent()) { //校验值是否存在
    DataIntegration.rsvrIntegration(station, dsflzOptional.get());//获取值对应的对象
}
THE END
喜欢就支持一下吧
点赞7 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容