干掉 if else 辣,Java8 判空新写法!

0932aa3bf1808373043e00df5ce0f2d4.png

若有收获,请记得分享和转发哦

在文章的开头,先说下NPE问题,NPE问题就是,我们在开发中经常碰到的NullPointerException.假设我们有两个类,他们的UML类图如下图所示

932e658b141ecc009769a29b3322b101.png

在这种情况下,有如下代码

user.getAddress().getProvince();

这种写法,在user为null时,是有可能报NullPointerException异常的。为了解决这个问题,于是采用下面的写法

if(user!=null){
    Address address = user.getAddress();
    if(address!=null){
        String province = address.getProvince();
    }
}

这种写法是比较丑陋的,为了避免上述丑陋的写法,让丑陋的设计变得优雅。JAVA8提供了Optional类来优化这种写法,接下来的正文部分进行详细说明

955405d2e53f9f9b4dcf0103ad5cbe42.png

ed85c190643b6c7b341aa951d68e3260.png

14993a638ddc48bb860beac48d593ac7.png

7699dd95ebcc4c7d60386a6c8a37230e.png

7715cef7e71578dd90aa9f701b85ffca.png

0315a2f030458607175fcfdf47465589.png

77b61c99c6cc91c5c772e230a3ca05e8.png

3e2437cc374922868d67dd9f52555676.png

fb55f7d6f2c5f84500a6a9e542a2e704.png

b2f7abeeef4e137f955e849dfcb8d24d.png

a58c8acb03fe382f56455913177166ea.png

553d034b627818eaa0fb09d0c7fe650b.png

dcdb39ae4b18db8175dcc1270f4e9b38.png

ef3c6471fe839707e02c56eec3578a9b.png

其他的例子,不一一列举了。不过采用这种链式编程,虽然代码优雅了。但是,逻辑性没那么明显,可读性有所降低,大家项目中看情况酌情使用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值