<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      【Java8新特性】Optional 類

      概述

      Optional 類是一個可以為null的容器對象。如果值存在則isPresent()方法會返回true,調用get()方法會返回該對象。

      Optional 是個容器:它可以保存類型T的值,或者僅僅保存null。Optional提供很多有用的方法,這樣我們就不用顯式進行空值檢測。

      Optional 類的引入很好的解決空指針異常。

      類聲明

      以下是一個 java.util.Optional 類的聲明:

      public final class Optional<T> extends Object
      

      類方法

      序號 方法 & 描述
      1 static Optional empty() 返回空的 Optional 實例。
      2 boolean equals(Object obj) 判斷其他對象是否等于 Optional。
      3 Optional filter(Predicate<? super predicate) 如果值存在,并且這個值匹配給定的 predicate,返回一個Optional用以描述這個值,否則返回一個空的Optional。
      4 Optional flatMap(Function<? super T,Optional> mapper) 如果值存在,返回基于Optional包含的映射方法的值,否則返回一個空的Optional
      5 T get() 如果在這個Optional中包含這個值,返回值,否則拋出異常:NoSuchElementException
      6 int hashCode() 返回存在值的哈希碼,如果值不存在 返回 0。
      7 void ifPresent(Consumer<? super T> consumer) 如果值存在則使用該值調用 consumer , 否則不做任何事情。
      8 boolean isPresent() 如果值存在則方法會返回true,否則返回 false。
      9 Optional map(Function<? super T,? extends U> mapper) 如果有值,則對其執行調用映射函數得到返回值。如果返回值不為 null,則創建包含映射返回值的Optional作為map方法返回值,否則返回空Optional。
      10 static Optional of(T value) 返回一個指定非null值的Optional。
      11 static Optional ofNullable(T value) 如果為非空,返回 Optional 描述的指定值,否則返回空的 Optional。
      12 T orElse(T other) 如果存在該值,返回值, 否則返回 other。
      13 T orElseGet(Supplier<? extends T> other) 如果存在該值,返回值, 否則觸發 other,并返回 other 調用的結果。
      14 T orElseThrow(Supplier<? extends X> exceptionSupplier) 如果存在該值,返回包含的值,否則拋出由 Supplier 繼承的異常
      15 String toString() 返回一個Optional的非空字符串,用來調試

      注意: 這些方法是從 java.lang.Object 類繼承來的。

      Optional 實例

      我們可以通過以下實例來更好的了解 Optional 類的使用:

      import java.util.Optional;
       
      public class Java8Tester {
         public static void main(String args[]){
         
            Java8Tester java8Tester = new Java8Tester();
            Integer value1 = null;
            Integer value2 = new Integer(10);
              
            // Optional.ofNullable - 允許傳遞為 null 參數
            Optional<Integer> a = Optional.ofNullable(value1);
              
            // Optional.of - 如果傳遞的參數是 null,拋出異常 NullPointerException
            Optional<Integer> b = Optional.of(value2);
            System.out.println(java8Tester.sum(a,b));
         }
          
         public Integer sum(Optional<Integer> a, Optional<Integer> b){
          
            // Optional.isPresent - 判斷值是否存在
              
            System.out.println("第一個參數值存在: " + a.isPresent());
            System.out.println("第二個參數值存在: " + b.isPresent());
              
            // Optional.orElse - 如果值存在,返回它,否則返回默認值
            Integer value1 = a.orElse(new Integer(0));
              
            //Optional.get - 獲取值,值需要存在
            Integer value2 = b.get();
            return value1 + value2;
         }
      }
      

      執行結果:

      $ javac Java8Tester.java 
      $ java Java8Tester
      第一個參數值存在: false
      第二個參數值存在: true
      10
      

      原文鏈接:菜鳥教程Java 8 Optional類

      posted @ 2022-05-17 18:10  HZX↑  閱讀(84)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 92自拍视频爽啪在线观看| 久久亚洲AV成人网站玖玖| 乱人伦人妻系列| 国产精品普通话国语对白露脸 | 粉嫩av一区二区三区蜜臀| 国产精品麻豆中文字幕| 国偷自产一区二区免费视频| 亚洲色偷偷偷网站色偷一区| 办公室强奷漂亮少妇视频| 曲阳县| 久久天天躁狠狠躁夜夜婷| 国产成人精选视频在线观看不卡 | 常宁市| 亚洲大尺度无码专区尤物| 国产高清在线男人的天堂| 亚洲AV无码专区亚洲AV桃| 久久国产精品色av免费看| 亚洲男人的天堂久久香蕉| 青青草成人免费自拍视频| 瓦房店市| 国产av无码专区亚洲av软件| 无码无需播放器av网站| 亚洲人成18在线看久| 亚洲老熟女一区二区三区| 又爽又黄又无遮挡的视频| 国产成人精品午夜在线观看| 精品无码成人片一区二区| 黑人大荫道bbwbbb高潮潮喷| 中文字幕人妻中文AV不卡专区 | 男人的天堂va在线无码| 最新成免费人久久精品| 国产日韩av免费无码一区二区三区| 亚洲国产精品久久一线不卡| 九九热免费在线播放视频| 亚洲午夜伦费影视在线观看| 午夜久久一区二区狠狠干| 青草精品国产福利在线视频| 欧美成人午夜精品免费福利| 忘忧草在线社区www中国中文| 精品国产女同疯狂摩擦2| 国产成人精品亚洲精品日日|