Java語言中的泛型

1、泛型的概念及做用安全

  一、泛型的概念this

    Java中的泛型是Java SE 1.5的新特性,泛型的本質是參數化類型,也就是說所操做的數據類型被指定爲一個參數。spa

    這種參數類型能夠用在類、接口和方法的建立中,分別稱爲泛型類、泛型接口、泛型方法。  對象

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

    例如:get

    Class ArrayList<E>:聲明一個泛型類ArrayList,其中E可使用任意一個具體類型替代,泛型類型每每使用一個大寫字母表示。編譯

    Public boolean add(E o):E是泛型,也就是說,使用add方法時,能夠爲其傳遞任意一種類型的參數。其中此處的E是在類中定義的。class

  二、泛型的做用泛型

    Java中泛型的做用:簡單安全變量

  在編譯的時候檢查類型安全,而且全部的強制轉換都是自動和隱式的,提升代碼的重用率

  消除代碼中的強制類型轉換,同時得到一個附加的類型檢查層,該檢查層能夠防止有人將錯誤類型的值保存在集合中。

2、泛型類

  聲明類名後使用<E>E能夠是任何其餘字母),便可以指定該類是一個泛型類;

  類型參數能夠在該類中須要數據類型的地方使用,如屬性聲明、方法聲明等。

    例如:

    public class Poot<E> {

       private E ota;

      public Poot(){

       }

       public E getOta() {

        return ota;

      }

      public void setOta(E ota) {

        this.ota = ota;

      }

3、泛型方法

  全部泛型方法聲明都有一個類型參數聲明部分(由尖括號分隔),該類型參數聲明部分在方法返回類型以前(在下面例子中的<E>);

  例如:

  public <E> E getX(E x){

     return x;

  }

  每個類型參數聲明部分包含一個或多個類型參數,參數間用逗號隔開。一個泛型參數,也被稱爲一個類型變量,是用於指定一個泛型類型名稱的標識符;

  類型參數能被用來聲明返回值類型,而且能做爲泛型方法獲得的實際參數類型的佔位符;

  泛型方法體的聲明和其餘方法同樣。注意類型參數只能表明引用型類型,不能是原始類型(像int,double,char的等)。

    注意:是否擁有泛型方法,與其所在的類是否泛型沒有關係。要定義泛型方法,只需將泛型參數列表置於返回值前。

4、泛型接口

  泛型接口,與泛型類徹底相同

  Public interface  TestGenerics<T> {  

        Public T getT(T t);    

     Public String assume(T t);      

   }

  Comparable接口是泛型接口

    public interface Comparable<T> { 

      public boolean compareTo(T other);

     }

  Comparable 接口包含一個類型參數 T,該參數是一個實現 Comparable 的類能夠與之比較的對象的類型。這意味着若是定義一個實現 Comparable 的類,好比 String,要聲明它可與什麼比較(一般是與它自己比較)。

  public class String implements Comparable<String> {

       ...

   }

相關文章
相關標籤/搜索