码迷,mamicode.com
首页 > 编程语言 > 详细

JAVA8之妙用Optional解决判断Null为空的问题

时间:2019-12-17 20:17:00      阅读:272      评论:0      收藏:0      [点我收藏+]

标签:ring   address   zha   map   ESS   add   setname   cep   except   

直接上实战

//以前写法
public String getCity(User user)  throws Exception{
        if(user!=null){
            if(user.getAddress()!=null){
                Address address = user.getAddress();
                if(address.getCity()!=null){
                    return address.getCity();
                }
            }
        }
        throw new Excpetion("取值错误"); 
  }

    //java8写法   
    public String getCity(User user) throws Exception{
    return Optional.ofNullable(user)
                   .map(u-> u.getAddress())
                   .map(a->a.getCity())
                   .orElseThrow(()->new Exception("取指错误"));
}

主程序中

//以前写法
if(user!=null){
    dosomething(user);
}

//java8的写法
 Optional.ofNullable(user)
    .ifPresent(u->{
        dosomething(u);
});
//以前的写法
public User getUser(User user) throws Exception{
    if(user!=null){
        String name = user.getName();
        if("zhangsan".equals(name)){
            return user;
        }
    }else{
        user = new User();
        user.setName("zhangsan");
        return user;
    }
}

//java8的写法
public User getUser(User user) {
    return Optional.ofNullable(user)
                   .filter(u->"zhangsan".equals(u.getName()))
                   .orElseGet(()-> {
                        User user1 = new User();
                        user1.setName("zhangsan");
                        return user1;
                   });
}

JAVA8之妙用Optional解决判断Null为空的问题

标签:ring   address   zha   map   ESS   add   setname   cep   except   

原文地址:https://blog.51cto.com/yushiwh/2459289

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!