User user = userService.getUserbyId(0);
Optional<User> op = Optional.ofNullable(user);
op.ifPresent(o -> o.setUserName("小明")); | if(op.isPresent()){ op.get().setUserName("小明")); } |
op.orElse(initUser); | if(op.isPresent()){ return op.get(); } else{ return initUser; } |
op.orElseGet(() -> new User(0, "小明")); | if(op.isPresent()){ return op.get(); } else{ return new User(0, "小明"); } |
op.orElseThrow(IllegalArgumentException::new); | if(op.isPresent()){ return op.get(); } else{ throw new IllegalArgumentException() } |
//以前写法
if(user!=null){
dosomething(user);
}
//java8的写法
Optional.ofNullable(user)
.ifPresent(u->{
dosomething(u);
});
//以前写法
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("取指错误"));
}