目录
- 1. java.util.Optional
- 1.1 public static Optional empty()
- 1.2 public static Optional of(T value)
- 1.3 public static Optional ofNullable(T value)
- 1.4 public T get()
- 1.5 public boolean isPresent()
- 1.6 public boolean isEmpty()
- 1.7 public void ifPresent(Consumer<? super T> action)
- 1.8 public void ifPresentOrElse(Consumer<? super T> action, Runnable emptyAction)
- 1.9 public Optional filter(Predicate<? super T> predicate)
- 1.10 public Optional map(Function<? super T, ? extends U> mapper)
- 1.11 public Optional flatMap(Function<? super T, ? extends Optional<? extends U>> mapper)
- 1.12 public Optional or(Supplier<? extends Optional<? extends T>> supplier)
- 1.13 public Stream stream()
- 1.14 public T orElse(T other)
- 1.15 public T orElseGet(Supplier<? extends T> supplier)
- 1.16 public T orElseThrow()
- 1.17 public T orElseThrow(Supplier<? extends X> exceptionSupplier) throws
- 1.18 public boolean equals(Object obj)
- 1.19 public int hashCode()
- 1.20 public String toString()
1. java.util.Optional
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<? super T> action)
如果当前Optional不为空,则执行指定Consumer。
1.8 public void ifPresentOrElse(Consumer<? super T> action, Runnable emptyAction)
如果当前Optional不为空,则执行指定Consumer,否则执行指定Runable。
1.9 public Optional filter(Predicate<? super T> predicate)
如果当前Optional为空,返回空Optional,否则执行指定Predicate,若执行结果为true,则返回当前Optional,否则返回空Optional。
1.10 public Optional map(Function<? super T, ? extends U> mapper)
返回将当前Optional的值传递给指定Function后的结果并将结果包装成Optional,若当前Optional为空或Function执行结果为空,则返回空Optional。
1.11 public Optional flatMap(Function<? super T, ? extends Optional<? extends U>> mapper)
返回将当前Optional的值传递给指定Function后的结果,若当前Optional为空或Function执行结果为空,则返回空Optional,该方法与上述map方法的区别在与map方法会将Function返回的结果自动包装成Optional类型,而flatMap方法的Function返回的结果必须是Optional类型,flatMap的返回结果与Function的结果一样保持不变。
1.12 public Optional or(Supplier<? extends Optional<? extends T>> 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<? extends T> supplier)
若当前Optional不为空,返回当前Optional的值,否则返回指定Supplier生成的对象。
1.16 public T orElseThrow()
若当前Optional不为空,返回当前Optional的值,否则抛出NoSuchElementException。
1.17 public T orElseThrow(Supplier<? extends X> exceptionSupplier) throws
若当前Optional不为空,返回当前Optional的值,否则抛出指定Supplier生成的异常。
1.18 public boolean equals(Object obj)
略。
1.19 public int hashCode()
略。
1.20 public String toString()
略。