• <menu id="eeoky"><tt id="eeoky"></tt></menu>
  • <nav id="eeoky"></nav>
  • Guava教程

    Guava教程

    Guava是什么

    Guava是一種基于開源的Java庫,其中包含谷歌正在由他們很多項目使用的很多核心庫。這個庫是為了方便編碼,并減少編碼錯誤。這個庫提供用于集合,緩存,支持原語,并發性,常見注解,字符串處理,I/O和驗證的實用方法。

    Guava的好處

    標準化 - Guava庫是由谷歌托管。高效 - 可靠,快速和有效的擴展JAVA標準庫優化 -Guava庫經過高度的優化。

    函數式編程 -增加JAVA功能和處理能力。

    實用程序 - 提供了經常需要在應用程序開發的許多實用程序類。

    驗證 -提供標準的故障安全驗證機制。

    最佳實踐 - 強調最佳的做法。

    考慮下面的代碼片段。

    public class GuavaTester {
       public static void main(String args[]){
          GuavaTester guavaTester = new GuavaTester();
          Integer a =  null;
          Integer b =  new Integer(10);
          System.out.println(guavaTester.sum(a,b));
       }
    
       public Integer sum(Integer a, Integer b){
          return a + b;
       }    
    }
    

    運行程序,看到如下結果

    Exception in thread "main" java.lang.NullPointerException
        at GuavaTester.sum(GuavaTester.java:13)
        at GuavaTester.main(GuavaTester.java:9)
    

    以下是該代碼的問題

    sum() 不采取任何的保護傳遞的參數為null。

    調用函數也并不擔心傳遞一個null 到sum()方法而產生意外。

    當程序運行時,NullPointerException異常發生。

    為了避免上述問題,null檢查要在每個這樣存在問題地方。

    讓我們來看看使用Optional,Guava 提供實用工具類來標準化方式解決上述問題。

    import com.google.common.base.Optional;
    
    public class GuavaTester {
       public static void main(String args[]){
          GuavaTester guavaTester = new GuavaTester();
    
          Integer invalidInput = null;
          Optional<Integer> a =  Optional.of(invalidInput);
          Optional<Integer> b =  Optional.of(new Integer(10));
          System.out.println(guavaTester.sum(a,b));
       }
    
       public Integer sum(Optional<Integer> a, Optional<Integer> b){
          return a.get() + b.get();
       }    
    }
    
    

    運行程序,看到如下結果

    Exception in thread "main" java.lang.NullPointerException
        at com.google.common.base.Preconditions.checkNotNull(Preconditions.java:210)
        at com.google.common.base.Optional.of(Optional.java:85)
        at GuavaTester.main(GuavaTester.java:8)
    
    

    讓我們來了解上述程序的一些重要概念。

    Optional - 實用類,使代碼使用null能夠正常。

    Optional.of - 返回要用作參數Optional類的實例。檢查傳遞的值是否為null。

    Optional.get - 獲取輸入存儲在Optional 類的值。

    使用Optional類,可以方便地查看調用者方法來傳遞參數正確與否。

     

     

     

    轉載自并發編程網-ifeve.com

    全部教程
    疯狂婬荡乱婬A片中文,特级西西人体444WWw高清大胆,国产性XXXX18免费观看视频,中文字幕乱伦,free性满足HD国产精品,牛人女厕偷拍1区2区