public final class Optional<T> extends Object
isPresent()将返回true和get()将返回值。 
        提供依赖于存在或不存在包含值的其他方法,例如orElse() (如果值不存在则返回默认值)和ifPresent() (如果值存在则执行代码块)。 
 这是一个value-based课; 使用身份敏感的操作(包括引用相等(的==上的实例),标识哈希码,或同步) Optional可具有不可预测的结果,应当避免。 
| Modifier and Type | Method and Description | 
|---|---|
| static <T> Optional<T> | empty()
              返回一个空的 
              Optional实例。 | 
| boolean | equals(Object obj)
              指示某个其他对象是否等于此可选项。 
             | 
| Optional<T> | filter(Predicate<? super T> predicate)
              如果一个值存在,并且该值给定的谓词相匹配时,返回一个 
              Optional描述的值,否则返回一个空的Optional。 | 
| <U> Optional<U> | flatMap(Function<? super T,Optional<U>> mapper)
              如果一个值存在,应用提供的 
              Optional映射函数给它,返回该结果,否则返回一个空的Optional。 | 
| T | get()
              如果 
              Optional中有一个值,返回值,否则抛出NoSuchElementException。 | 
| int | hashCode()
              返回当前值的哈希码值(如果有的话),如果没有值,则返回0(零)。 
             | 
| void | ifPresent(Consumer<? super T> consumer)
              如果存在值,则使用该值调用指定的消费者,否则不执行任何操作。 
             | 
| boolean | isPresent()
              返回 
              true如果存在值,否则为false。 | 
| <U> Optional<U> | map(Function<? super T,? extends U> mapper)
              如果存在一个值,则应用提供的映射函数,如果结果不为空,则返回一个 
              Optional结果的Optional。 | 
| static <T> Optional<T> | of(T value)
              返回具有 
              Optional的当前非空值的Optional。 | 
| static <T> Optional<T> | ofNullable(T value)
              返回一个 
              Optional指定值的Optional,如果非空,则返回一个空的Optional。 | 
| T | orElse(T other)
              返回值如果存在,否则返回 
              other。 | 
| T | orElseGet(Supplier<? extends T> other)
              返回值(如果存在),否则调用 
              other并返回该调用的结果。 | 
| <X extends Throwable> | orElseThrow(Supplier<? extends X> exceptionSupplier)
              返回包含的值(如果存在),否则抛出由提供的供应商创建的异常。 
             | 
| String | toString()
              返回此可选的非空字符串表示,适用于调试。 
             | 
public static <T> Optional<T> empty()
Optional实例。 
           此可选项不存在值。 
          Option.empty()与== ,则避免测试对象是否为空。 
            不能保证是单身人士。 
            相反,请使用isPresent() 。 
           T - 不存在值的类型 
           Optional 
           public static <T> Optional<T> of(T value)
Optional的当前非空值的Optional。 
          T - 该类的值 
           value - 要存在的值,它必须是非空值 
           Optional的值存在 
           NullPointerException - 如果值为空 
           public static <T> Optional<T> ofNullable(T value)
Optional指定值的Optional,如果非空,则返回一个空的 
           Optional 。 
          T - 该类的值 
           value - 可能为null的值来描述 
           Optional ,如果指定的值不为空,则为当前值,否则为空 
            Optional 
           public T get()
Optional中存在值,则返回值,否则抛出 
           NoSuchElementException 。 
          Optional非空值 
           NoSuchElementException - 如果没有值存在 
           isPresent() 
           public boolean isPresent()
true ,否则为 
           false 。 
          true若有存在值,否则为 
            false 
           public void ifPresent(Consumer<? super T> consumer)
consumer - 如果存在值,则执行块 
           NullPointerException - 如果值存在且 
            consumer为空 
           public Optional<T> filter(Predicate<? super T> predicate)
Optional描述的值,否则返回一个空的 
           Optional 。 
          predicate - 一个应用于该值的谓词(如果存在) 
           Optional描述此的值 
            Optional一个值是否存在,并且值给定的谓词相匹配,否则一个空 
            Optional 
           NullPointerException - 如果谓词为空 
           public <U> Optional<U> map(Function<? super T,? extends U> mapper)
Optional结果的Optional 。 
           否则返回一个空的Optional 。 
          Optional<FileInputStream> : 
               Optional<FileInputStream> fis = names.stream().filter(name -> !isProcessedYet(name)) .findFirst() .map(name -> new FileInputStream(name));   
            这里, findFirst返回一个Optional<String> ,然后map返回一个Optional<FileInputStream>为所需文件(如果存在)。 
           U - 映射函数的结果类型 
           mapper - 应用于值的映射函数(如果存在) 
           Optional描述了将映射函数应用于该值 
            Optional的值的 
            Optional ,如果存在值,否则为空 
            Optional 
           NullPointerException - 如果映射函数为空 
           public <U> Optional<U> flatMap(Function<? super T,Optional<U>> mapper)
Optional映射函数给它,返回该结果,否则返回一个空的Optional 。 
           这种方法类似于map(Function) ,但是提供的映射器是一个结果已经是Optional映射器,如果被调用, flatMap不会用额外的Optional 。 
          U - 返回的 
            Optional的类型参数 
           mapper - 应用于值的映射函数,如果存在映射函数 
           Optional荷瘤映射函数此的值 
            Optional ,如果一个值存在,否则一个空 
            Optional 
           NullPointerException - 如果映射函数为空或返回空结果 
           public T orElse(T other)
other 。 
          other - 如果没有值存在则返回的值可以为null 
           other 
           public T orElseGet(Supplier<? extends T> other)
other并返回该调用的结果。 
          other - 一个 
            Supplier ,如果没有值,则返回其结果 
           other.get() 
           NullPointerException - 如果值不存在,并且 
            other为空 
           public <X extends Throwable> T orElseThrow(Supplier<? extends X> exceptionSupplier) throws X extends Throwable
IllegalStateException::new 
           X - 要抛出的异常的类型 
           exceptionSupplier - 将返回要抛出的异常的供应商 
           X - 如果没有值存在 
           NullPointerException - 如果没有值, 
            exceptionSupplier为空 
           X extends Throwable 
           public boolean equals(Object obj)
Optional和; equals() “相等”。 equals在类别 
            Object 
           obj - 要进行相等测试的对象 
           false 
           Object.hashCode() , HashMap 
           public int hashCode()
hashCode在 
            Object 
           Object.equals(java.lang.Object) , 
            System.identityHashCode(java.lang.Object) 
            Submit a bug or feature 
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
 Copyright © 1993, 2014, Oracle and/or its affiliates. All rights reserved.