一、前言
做为一个Java开发者,几乎都被一个异常所折磨过--NullPointerException(NPE),而吸取Haskell和Scala的灵感,Java8中引入另一个新的类java.util.Optional<T>
。Java 8中的Optional是一个可以包含或不可以包含非空值的容器对象,在Stream API中很多地方也都使用到了Optional。我们距离来看看增加这类之后,我们的代码有什么改进,为什么推荐用这个类去做null检测呢?
现有场景,一个用户在阅读一本书,并且要花钱买这本书来看。我们会很容易得写出这样的代码:
public Object getReadBook(Person person) {
Book book = person.getReadBook();
}
大约 5 分钟