感觉没啥鸟用,有的地方就是要原始类型,为null,自有外层包装的null异常类来处理。
查了下资料。参考:https://www.jb51.net/article/127425.htm
如下,以前我的理解如下,觉得两种方式,好像没啥区别只是 一个用了一个包装方法。文中说用其他的.orElse 或者其他方法,让看起来优雅些,那为啥还要暴露 .isPresent() 和.get()方法呢?私有不就好了。
看了一下文章,感觉是有点用处,例如 ifPresent 方法,可能是好一点吧。
总结下:第一,ifPresent的场景用这个类型吧。第二,如果就是不能为null,那么就用他的get让他抛异常吧。
其他的还是就用原始类型比较方便
Optional<User> user = ......
if (user.isPresent()) {
return user.getOrders();
} else {
return Collections.emptyList();
}
User user = .....
if
(user !=
null
) {
return
user.getOrders();
}
else
{
return
Collections.emptyList();
}