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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JAVA8之妙用Optional解决判断Null为空的问题相关的知识,希望对你有一定的参考价值。

直接上实战

//以前写法
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为空的问题的主要内容,如果未能解决你的问题,请参考以下文章

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

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

夯实Java基础(二十三)——Java8新特征之Optional类

Java8新特性之Optional

Java8之Optional判空,简化判空操作

Java8之Optional类