泛型一直以來都是一個比較難以講解清楚的知識點(diǎn)倒槐,
本篇帖子旨在能夠讓初學(xué)者一次聽懂泛型屈呕,理解泛型
包裝箱大家都見過吧兔辅?
包裝箱
這是一個生產(chǎn)出來的包裝箱灭红,但是箱子里將來要裝什么,沒有人知道跳仿,我們只知道這個箱子里將來要裝東西
那么留美,當(dāng)我們使用箱子裝東西的時候,要往箱子上貼上標(biāo)簽荧恍,這樣我們就知道箱子里裝的是什么東西,將來取出來的時候也一定是該物品(杠精不要抬杠說標(biāo)簽會貼錯)
例如屯吊,箱子上貼上手機(jī)的標(biāo)簽
箱子上貼了手機(jī)的標(biāo)簽
這樣的話送巡,箱子里裝的一定是手機(jī),將來取出來也一定是手機(jī)
現(xiàn)在給箱子貼上驢的標(biāo)簽
箱子上貼了驢的標(biāo)簽
那么箱子里裝的一定是驢盒卸,將來取出來的也一定是驢
不要懷疑骗爆,我這個箱子什么都能裝進(jìn)去
好了,這就是生活中的泛型
那么在代碼中怎么使用泛型類呢蔽介?
泛型類的定義
/**
* java中泛型類語法就是這樣寫的
* 在類的后面跟上一個<E>
* @param <E>
*/
public class Test<E> {
private E element;//這個element就是箱子里的元素(東西)摘投,現(xiàn)在只是生產(chǎn)箱子煮寡,箱子里將來要裝什么元素(東西),不清楚
//這個E將來是什么類型(東西)犀呼,只能在將來貼上標(biāo)簽后才知道
/**
* 暴露get方法幸撕,獲取箱子里的元素(東西)
* @return
*/
public E getElement() {
return element;
}
}
接下來,我們把需要往箱子里裝的東西(類)定義好
定義手機(jī)類
/**
* 手機(jī)類
*/
public class Mobile {
/**
* 打電話的方法
*/
public void call(){
Log.d("====", "call: 手機(jī)可以打電話");
}
}
定義驢類
/**
* 驢類
*/
public class Donkey {
/**
* 驢叫的方法
*/
public void aoao(){
Log.d("====", "aoao: 驢可以嗷嗷叫");
}
}
現(xiàn)在開始使用箱子(給箱子貼上標(biāo)簽)
本次給箱子貼手機(jī)的標(biāo)簽外臂,即把泛型聲明為Mobile類
//箱子上貼了手機(jī)的標(biāo)簽
Test<Mobile> mobileTest =new Test<>();
//箱子里獲取出來的是手機(jī)
Mobile element = mobileTest.getElement();
//因?yàn)楂@取的出來的是手機(jī)坐儿,所以可以調(diào)用手機(jī)的打電話方法
element.call();
本次給箱子貼驢的標(biāo)簽,即把泛型聲明為Donkey類
//箱子貼上了驢的標(biāo)簽
Test<Donkey> donkeyTest=new Test<>();
//箱子里獲取出來的是驢
Donkey element1 = donkeyTest.getElement();
//可以調(diào)用驢叫的方法
element1.aoao();
好了宋光,泛型類的思想講完了貌矿。
代碼不多,思想是關(guān)鍵罪佳。
帖子不長逛漫,一定要仔細(xì)看。