Optional讲解

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/weixin_41751625/article/details/89913940

            在我们平常的开发中,最常见的异常莫过于NullPointerException,这个臭名昭著的空指针异常突然就会冒出来,号称是一百万美元的损失,为了防止这个异常的产生,我们平常在写程序的时候经常会进行非空的判断,然后才执行我们的逻辑。下面来看一个例子。

             假如有下面这样的一段代码。

            

String result=user.getUserInfo().getBodyInfo().getDesc();

 很明显,这一段代码很容易就会产生空指针,中间的任何一个为空都会产生空指针。那么我们通常会这样做

if(user!=null){
    UserInfo userInfo=user.getUserInfo();
    if(userInfo!=null){
        BodyInfo bodyInfo=userInfo.getBodyInfo();
        if(bodyInfo!=null){
            return bodyInfo.getDesc();
        }
    }
}
return null;

 加上了这一大堆的判断,代码显的又臭又长,为了代码的简介,java8提供了一个Optional类,简单的来说,这个类的设计初衷就是为了避免空指针异常中引入的大量判空。

return Optional.ofNullable(user).map(User::getUserInfo).map(UserInfo::getBodyInfo).map(BodyInfo::getDesc).orElse(null);

经过Optional改造之后,只需要一行就可以解决,是不是清爽干净多了。 

猜你喜欢

转载自blog.csdn.net/weixin_41751625/article/details/89913940