Java中的泛型

來源:互聯網
上載者:User

標籤:

1:泛型(掌握)
  (1)泛型概述
    是一種把明確類型的工作延遲到建立對象或者調用方法的時候才去明確的特殊的類型。
  (2)格式:
    <資料類型>
    注意:該資料類型只能是參考型別。
  (3)好處:
    A:把運行時期的問題提前到了編譯期間
    B:避免了強制類型轉換
    C:最佳化了程式設計,解決了黃色警告線問題,讓程式更安全
  (4)泛型的前世今生
    A:泛型的由來
      Object類型作為任意類型的時候,在向下轉型的時候,會隱含一個轉型問題
    B:泛型類 :public class 類名<泛型型別1,泛型型別2、、、> 如:public class studet<T>{ //裡面T表示的是一個類型名。 }
    C:泛型方法:(它會進行類型推斷)
      類型1:類上有泛型型別。
       public class stduet<T> {
        public void method(T t){ }
       }
      類型2:類上沒有泛型型別
        public class students{
          public <T> void show(T t){ }
        }
    D:泛型介面:public interface 介面名 <泛型型別1,泛型型別2、、、>{ }
        public interface ter<T t>{
            public void add(T t){ }
        }

    E:泛型進階萬用字元:
      由於泛型在明確的指定類型後,前後的類型必須是一樣的,否則報錯。而有時候,我們往往不知道是該類還是該類的子類,因此,剛開始無法確定類型,因此需要萬用字元。
        ? 表示的是任意類型,如果沒有明確,那麼就是Object以及任意的java類
          如: Collection<?> c =new ArrayList<Object>();
        ? extends E 表示的是向下限定,E及其子類 ,這裡是表示只能統配該類和該類的子類可以。
          如: Collection<? extends animal> c =new ArrayList<Dog>();可以
          Collection<? extends animal> c =new ArrayList<Object>(); 不可以
        ? super E 表示的是向上限定,E及其父類 ,這裡是表示只能統配該類和該類的父類。
          如:Collection<? extends animal> c =new ArrayList<Dog>(); 不可以
          Collection<? extends animal> c =new ArrayList<Object>(); 可以
    (5)JDK5的新特性:自動拆裝箱,泛型,增強for,靜態匯入,可變參數,枚舉。

  2:增強for迴圈
    (1)是for迴圈的一種
    (2)格式:
      for(元素的資料類型 變數名 : 數組或者Collection集合的對象) {
          使用該變數即可,該變數其實就是數組或者集合中的元素。
        }
    (3)好處:
      簡化了數組和集合的遍曆
    (4)弊端
      增強for迴圈的目標不能為null。建議在使用前,先判斷是否為null。

3:靜態匯入
    (1)可以匯入到方法層級的匯入,可以直接調用方法名即可。
    (2)格式:
      import static 包名....類名.方法名;
    (3)注意事項:
      A:方法必須是靜態
      B:如果多個類下有同名的方法,就不好區分了,還得加上首碼。
      所以一般我們並不使用靜態匯入,但是一定要能夠看懂。

4:可變參數(掌握)
    (1)如果我們在寫方法的時候,參數個數不明確,就應該定義可變參數。
    (2)格式:
      修飾符 傳回值類型 方法名(資料類型... 變數) {}
      public static int sum(int... a){ } //在調用該方法的時候會有具體的參數的個數。
    注意:
      A:該變數a其實是一個數組名
      B:如果一個方法有多個參數,並且有可變參數,可變參數必須在最後
    (3)Arrays工具類的一個方法
      asList()把數組轉成集合。
      注意:雖然可以把數群組轉換成集合,但是這個集合的長度不能改變,原因是這個集合本質上還是數組,數組的長度是不變的。

 

Java中的泛型

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.