https://www.cnblogs.com/zhangboyu/p/7580262.html
Optional 类主要解决的问题是臭名昭著的空指针异常 (NullPointerException)
of() 和 ofNullable()
orElse() 和 orElseGet()
orElseThrow()
or(),ifPresentOrElse() 和 stream()
重要的一点是 Optional 不是 Serializable. 因此, 它不应该用作类的字段.
如果你需要序列化的对象包含 Optional 值, Jackson 库支持把 Optional 当作普通对象. 也就是说, Jackson 会把空对象看作 null, 而有值的对象则把其值看作对应域的值.
来源: http://www.bubuko.com/infodetail-3682471.html