您的位置:首页 > 新闻 > 热点要闻 > 手机微信小程序怎么制作_想卖产品怎么推广宣传_中国十大it培训机构排名_百度地图优化排名方法

手机微信小程序怎么制作_想卖产品怎么推广宣传_中国十大it培训机构排名_百度地图优化排名方法

2025/1/4 14:59:10 来源:https://blog.csdn.net/lklalmq/article/details/144217931  浏览:    关键词:手机微信小程序怎么制作_想卖产品怎么推广宣传_中国十大it培训机构排名_百度地图优化排名方法
手机微信小程序怎么制作_想卖产品怎么推广宣传_中国十大it培训机构排名_百度地图优化排名方法

可以看我另一篇博客:【Java】Optional类入门使用-CSDN博客

回答重点

Optional类是Java8引入的一个容器类,用于处理可能为空的值。提供更简洁的API,提高代码可读性,来减少程序中出现null的情况,尽量避免NullPointerException(空指针异常)

Optional有两种状态,可以包含一个值,表示 "值存在",也可以为空,表示 "值为空"

扩展知识

基本方法

另一篇博客里都有,我这里截个图

Optional进一步分析

容器类,用来集中管理数据的类,Java中的集合、列表、映射(Map)、队列和栈都是容器类

常见的使用方式:

Optional<User> userOption = Optional.ofNullable(userService.getUser(...));
if (!userOption.isPresent()) {....}

架构师 Brian Goetz 解释Optional类的设计意图:

意思就是:Optional类给返回结果提供了一个表示无结果的值,而不是直接返回null

简单理解:就是一个外壳,里面放着原先的值,如果这个值是null,会进行包装(当然不是null也会包装)

网上比较流行的说法是Optional可以避免空指针,不过如果里面的值真是null,不做额外的判断,直接使用还是会有空指针的问题

倒不如说:最终的目的是拿到Optional里面存储的值

Optional的好处在于可以简化平日里一系列判断null的操作,使得用起来的时候看着不需要判断null,纵向丝滑,表现出来好像用Optional就不需要关心空指针的情况

而事实上Optional在替我们负重前行,该有的判断它替我们完成了,而且用了Optional最后拿结果的时候还是小心的,盲目直接get还是会抛错

看下面的场景能看出Optional的好处:

场景:找yes的地址所在省份,找不到就抛异常

Yes yes = getYes();
if (yes != null) {Address yesAddress = yes.getAddress();if (yesAddress != null) {Province province = yesAddress.getProvince();System.out.println(province.getName());}
}
throw new NoSuchElementException(); //如果没找到就抛错

如果用Optional

Optional.ofNullable(getYes()).map(a -> a.getAddress()).map(p -> p.getProvince()).map(n -> n.getName()).orElseThrow(NoSuchElementException::new);

不需要判空,就算address、province为空,也不会空指针异常,这就是Optional带来的好处!

相关博客:【Java】Java8的4个函数式接口简单教程-CSDN博客

【Java】Java8的Stream流入门使用-CSDN博客

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com