1. 程式人生 > >Java語言中的泛型

Java語言中的泛型

數據 返回值 result public 部分 集合 操作 ava imp

一、泛型的概念及作用

  1、泛型的概念

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

    這種參數類型可以用在類、接口和方法的創建中,分別稱為泛型類、泛型接口、泛型方法。

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

   例如:

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

    Public boolean add(E o):E是泛型,也就是說,使用add方法時,可以為其傳遞任意一種類型的參數。其中此處的E

是在類中定義的。

  2、泛型的作用

    Java中泛型的作用:簡單安全

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

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

二、泛型類

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

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

   例如:

    public class Poot<E> {

       private E ota;

      public Poot(){

       }

       public E getOta() {

        return ota;

      }

      public void setOta(E ota) {

        this.ota = ota;

      }

三、泛型方法

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

  例如:

  public <E> E getX(E x){

     return x;

  }

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

  類型參數能被用來聲明返回值類型,並且能作為泛型方法得到的實際參數類型的占位符;

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

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

四、泛型接口

  泛型接口,與泛型類完全相同

  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> {

       ...

   }

Java語言中的泛型