CoreJava學習5——泛型

Java泛型


泛型機制是1.5引入的特性,本質是參數化類型。在類,接口和方法的定義中,所操作的數據類型被傳入的參數指定。


可以在類中使用,可以在方法中使用,可以在集合中使用......


1、泛型在集合中的運用


Java泛型機制廣泛的運用在集合框架中,所有的集合類型都帶有參數,這樣在創建集合時可以指定放入集合中對象類型。


//List list = new ArrayList();//這樣我們可以使用任何類型,要指定一種類型。

List<String> list = new ArrayList<String>();

//現在就指定了只能放入字符串。而且在獲取的時候,不需要造型。

list.add("s");

for (int i = 0; i < list.size(); i++) {

String str = list.get(i);//不需要造型,因爲不是Object

System.out.println(str);

}

/*

* 如果使用迭代器我們也需要泛型

*/

Iterator<String> it = list.iterator();

while (it.hasNext()) {

  String string = it.next();

}

//或者

for (Iterator<String> ite = list.iterator(); ite.hasNext();) {

   String string = ite.next();

}


1)泛型定義在類名之後,<>之間;


2)泛型可以是字母和數字的組合,但是第一個字符必須是字母;


3)多個泛型之間用“,”分開;


4)泛型可以約束屬性,方法的參數和方法的返回類型。


class Point<E>{

   private E x;

   private E y;

   public Point(E x, E y) {

       this.x = x;

       this.y = y;

   }

   public E getX() {

       return x;

   }

   public void setX(E x) {

       this.x = x;

   }

}

//Point p = new Point(1,2);

//System.out.println(p);

//在使用的時候要給確切的類型

Point<Double> p = new Point<Double>(1.2,20.2);

System.out.println(p);


//我們不止可以指定一個類型,如下:

class Point1<E,Y>{

   private E x;

   private Y y;

   public Point1(E x, Y y) {

       this.x = x;

       this.y = y;

   }

}


在使用支持泛型的類時候,如我們不指定泛型類型,默認情況下泛型指定的就是Object。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章