原文链接:https://www.cnblogs.com/rjzheng/p/9163246.html
例子1:
//传统写法
if
(user !=
null
){
// TODO: do something
}
//java8写法
Optional.ofNullable(user).ifPresent(u->{
// TODO: do something
});
例子2:
/*****
*
* 使用Optional解决NPE(空指针异常)
* @author chenmc
* @date 2018/8/2 0:34
* @param user
* @return cn.tdw.modules.kefu.dto.CallLogDto
*/
//传统写法:
public CallLogDto getUser(CallLogDto user) throws Exception{
if(user!=null){
if("zhangsan".equals(user.getIntention())){
return user;
}
}else{
user = new CallLogDto();
user.setIntention("zhangsan");
return user;
}
}
//java8写法
public CallLogDto getUser(CallLogDto user) {
return Optional.ofNullable(user)
.filter(u->"zhangsan".equals(u.getIntention()))
.orElseGet(()-> {
CallLogDto user1 = new CallLogDto();
user1.setIntention("zhangsan");
return user1;
});
}