Optional对象是一种包装器对象,被当作一种更安全的方式,用来替代类型T的引用,用以解决空指值异常所带来的问题。
1.1 public static Optional empty()产生一个空Optional。
1.2 public static Optional of(T value)产生一个具有给定值的Optional,如果value为null,将会抛出NullPointerException。
1.3 public static Optional ofNullable(T value)产生一个具有给定值的Optional,如果value为null,将会产生一个空Optional。
1.4 public T get()获取当前Optional的值,如果当前Optional为空,则抛出NoSuchElementException。
1.5 public boolean isPresent()如果当前Optional不为空,则返回false。
1.6 public boolean isEmpty()如果当前Optional为空,则返回true。
1.7 public void ifPresent(Consumer action)如果当前Optional不为空,则执行指定Consumer。
1.8 public void ifPresentOrElse(Consumer action, Runnable emptyAction)如果当前Optional不为空,则执行指定Consumer,否则执行指定Runable。
1.9 public Optional filter(Predicate predicate)如果当前Optional为空,返回空Optional,否则执行指定Predicate,若执行结果为true,则返回当前Optional,否则返回空Optional。
1.10 public Optional map(Function mapper)返回将当前Optional的值传递给指定Function后的结果并将结果包装成Optional,若当前Optional为空或Function执行结果为空,则返回空Optional。
1.11 public Optional flatMap(Function<? super T, ? extends Optional> mapper)返回将当前Optional的值传递给指定Function后的结果,若当前Optional为空或Function执行结果为空,则返回空Optional,该方法与上述map方法的区别在与map方法会将Function返回的结果自动包装成Optional类型,而flatMap方法的Function返回的结果必须是Optional类型,flatMap的返回结果与Function的结果一样保持不变。
1.12 public Optional or(Supplier<? extends Optional> supplier)若当前Optional不为空,则返回当前Optional,否则返回Supplier执行后的结果,该结果必须为Optional类型,若Supplier执行后的结果为空,则抛出NullPointerException。
1.13 public Stream stream()若当前Optional为空,则返回空Stream,否则返回包含当前Optional的值的Stream。
1.14 public T orElse(T other)若当前Optional不为空,返回当前Optional的值,否则返回指定对象other。
1.15 public T orElseGet(Supplier supplier)若当前Optional不为空,返回当前Optional的值,否则返回指定Supplier生成的对象。
1.16 public T orElseThrow()若当前Optional不为空,返回当前Optional的值,否则抛出NoSuchElementException。
1.17 public T orElseThrow(Supplier exceptionSupplier) throws若当前Optional不为空,返回当前Optional的值,否则抛出指定Supplier生成的异常。
1.18 public boolean equals(Object obj)略。
1.19 public int hashCode()略。
1.20 public String toString()略。