JDK5.0新特性——泛型

來源:互聯網
上載者:User

泛型是Java SE 1.5的新特性,泛型的本質是參數化型別,也就是說所操作的資料類型被指定為一個參數。這種參數類型可以用在類、介面和方法的建立中,分別稱為泛型類、泛型介面、泛型方法。

  Java語言引入泛型的好處是安全簡單。

  在Java SE 1.5之前,沒有泛型的情況的下,通過對類型Object的引用來實現參數的“任意化”,“任意化”帶來的缺點是要做顯式的強制類型轉換,而這種轉換是要求開發人員對實際參數類型可以預知的情況下進行的。對於強制類型轉換錯誤的情況,編譯器可能不提示錯誤,在啟動並執行時候才出現異常,這是一個安全隱患。

  泛型的好處是在編譯的時候檢查型別安全,並且所有的強制轉換都是自動和隱式的,提高代碼的重用率。

  泛型在使用中還有一些規則和限制:

  1、泛型的型別參數只能是類類型(包括自訂類),不能是簡單類型。

  2、同一種泛型可以對應多個版本(因為參數類型是不確定的),不同版本的泛型類執行個體是不相容的。

  3、泛型的型別參數可以有多個。

  4、泛型的參數類型可以使用extends語句,例如<T extends superclass>。習慣上成為“有界類型”。

  5、泛型的參數類型還可以是萬用字元類型。例如Class<?> classType = Class.forName(java.lang.String);

  泛型還有介面、方法等等,內容很多,需要花費一番功夫才能理解掌握並熟練應用。在此給出我曾經瞭解泛型時候寫出的兩個例子(根據看的印象寫的),實現同樣的功能,一個使用了泛型,一個沒有使用,通過對比,可以很快學會泛型的應用,學會這個基本上學會了泛型70%的內容。例子:
  1. package gunct.jdk5;
  2. /**
  3.  * <b>Genericity。</b>
  4.  * <p><b>詳細說明:</b></p>
  5.  * <!-- 在此添加詳細說明 -->
  6.  * JDK5.0新特性,泛型。
  7.  * <p><b>修改列表:</b></p>
  8.  * <table width="100%" cellSpacing=1 cellPadding=3 border=1>
  9.  * <tr bgcolor="#CCCCFF"><td>序號</td><td>作者</td><td>修改日期</td><td>修改內容</td></tr>
  10.  * <!-- 在此添加修改列表,參考第一行內容 -->
  11.  * <tr><td>1</td><td>Oliver</td><td>2008-12-18 下午01:45:51</td><td>建立類型</td></tr>
  12.  * 
  13.  * </table>
  14.  * @version 1.0
  15.  * @author Oliver
  16.  * @since 1.0
  17.  */
  18. public class Genericity<T>//泛型T
  19. {
  20.     private T a;
  21.     public void setA(T a)
  22.     {
  23.         this.a=a;
  24.     }
  25.     public T getA()
  26.     {
  27.         return a;
  28.     }
  29.     
  30.     public static void main(String[] args)
  31.     {
  32.         //Integer類型
  33.         Genericity<Integer> intVal=new Genericity<Integer>();
  34.         intVal.setA(new Integer(5));
  35.         System.out.println(intVal.getA());
  36.         //String類型
  37.         Genericity<String> strVal= new Genericity<String>();
  38.         strVal.setA("Gunct");
  39.         System.out.println(strVal.getA());
  40.     }
  41. }

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.