java 泛型机制_java中的泛型机制
泛型
這種語(yǔ)法機(jī)制,只在程序編譯階段起作用,只是給編譯器參考的。(運(yùn)行階段泛型沒(méi)用)
使用了泛型好處是什么?
第一:集合中存儲(chǔ)的元素類(lèi)型統(tǒng)一。
第二:從集合中取出的元素類(lèi)型是泛型指定的類(lèi)型,不需要進(jìn)行大量的向下轉(zhuǎn)型。
泛型的缺點(diǎn)是什么?
導(dǎo)致集合中存儲(chǔ)的元素缺乏多樣性。
代碼示例:
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
public class Demo {
public static void main(String[] args) {
/*使用泛型List之后,
表示List集合中只允許存儲(chǔ)Animal類(lèi)型的數(shù)據(jù)。
用泛型來(lái)指定集合中存儲(chǔ)的數(shù)據(jù)類(lèi)型。*/
List list = new ArrayList();
/*指定List集合中只能存儲(chǔ)Animal,
那么存儲(chǔ)String就編譯報(bào)錯(cuò)了。這樣用了泛型之后,
集合中元素的數(shù)據(jù)類(lèi)型更加統(tǒng)一了。*/
list.add(new Animal());
list.add(new Cat());
/*這個(gè)表示迭代器迭代的是Animal類(lèi)型。*/
Iterator it = list.iterator();
while (it.hasNext()){
/*使用泛型之后,每一次迭代返回的數(shù)據(jù)都是Animal類(lèi)型。*/
Animal a = it.next();
/*這里不需要進(jìn)行強(qiáng)制類(lèi)型轉(zhuǎn)換,直接調(diào)用*/
a.move();
}
}
}
class Animal{
public void move(){
System.out.println("Animal move");
}
}
class Cat extends Animal{
public void move(){
System.out.println("Cat move");
}
}
輸出:
類(lèi)型自動(dòng)推斷
1、JDK8之后引入自動(dòng)類(lèi)型推斷機(jī)制。(又稱(chēng)為鉆石表達(dá)式)
2、上面的第10行代碼改為:
List list = new ArrayList<>();
自定義泛型
1、自定義泛型的時(shí)候,<>尖括號(hào)中的是一個(gè)標(biāo)識(shí)符,隨便寫(xiě)。
2、java源代碼中經(jīng)常出現(xiàn)的是:和,E是Element單詞首字母。T是Type單詞首字母。
3、代碼示例:
public class Demo{
/*這里的qwe是標(biāo)識(shí)符,隨便寫(xiě)*/
public void dosome(qwe o){
System.out.println(o);
}
public static void main(String[] args) {
Demo demo = new Demo<>();
demo.dosome("aaa");
Demo demo1 = new Demo<>();
demo1.dosome(123);
}
}
輸出:
總結(jié)
以上是生活随笔為你收集整理的java 泛型机制_java中的泛型机制的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: java throw异常_java th
- 下一篇: java中浮点数的表示_java 浮点数