<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                ### Optional 一個容器類,代表一個值存在或者不存在。用來避免空指針的異常。 java8對Optional的描述這是一個可以為null的容器對象。如果值存在則isPresent()方法會返回true,調用get()方法會返回該對象 ### Optional 的三種構造方式: #### 1. Optional.of(obj) of方法通過工廠方法創建Optional類。需要注意的是,創建對象時傳入的參數不能為null。如果傳入參數為null,則拋出NullPointerException。 #### 2. Optional.ofNullable(obj) 為指定的值創建一個Optional,如果指定的值為null,則返回一個空的Optional。(ofNullable與of方法相似,唯一的區別是可以接受參數為null的情況.) **源碼** ```java傳 null 進到就得到 Optional.empty(), 非 null 就調用 Optional.of(obj). public static <T> Optional<T> ofNullable(T value) { return value == null ? empty() : of(value); } ``` #### 3. Optional.empty() 創建一個空的Optional ### 其他的方法 #### 1.get 如果Optional有值則將其返回,否則拋出NoSuchElementException。 ```java //執行下面的代碼會輸出:No value present try { //在空的Optional實例上調用get(),拋出NoSuchElementException System.out.println(empty.get()); } catch (NoSuchElementException ex) { System.out.println(ex.getMessage()); } ``` #### 2.ifPresent 如果Optional實例是否有值 有=true 無=false #### 3.orElse 如果Optional實例有值則將其返回,否則返回orElse方法傳入的參數。 #### 4.orElseGet orElseGet方法可以接受Supplier接口的實現用來生成默認值。 empty.orElseGet(() -> "Default Value") #### 5.orElseThrow 如果有值則將其返回,否則拋出supplier接口創建的異常。 ```java try { empty.orElseThrow(ValueAbsentException::new); } catch (Throwable ex) { //輸出: No value present in the Optional instance System.out.println(ex.getMessage()); } ``` #### 6.map 如果有值,則對其執行調用map函數得到返回值。如果返回值不為null,則創建包含map返回值的Optional作為map方法返回值,否則返回空Optional。 return user.map(u -> u.getOrders()).orElse(Collections.emptyList()) #### 7.flatMap 與Map類似,但要求返回的必須是Optional。 optional.flatMap(t->Optional.of(t.length())); * * * * * 使用方式:可能又有可能沒有的值包裝到Optional里面即可。 private Optional<Man> man = Optional.empty();
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看