久久精品五月,日韩不卡视频在线观看,国产精品videossex久久发布 ,久久av综合

站長(zhǎng)資訊網(wǎng)
最全最豐富的資訊網(wǎng)站

一起來理解Java中的泛型

本篇文章給大家?guī)砹岁P(guān)于java的相關(guān)知識(shí),其中主要介紹了關(guān)于泛型的相關(guān)問題,包括了自定義泛型類、自定義泛型方法、自定義泛型接口等等內(nèi)容,下面一起來看一下,希望對(duì)大家有幫助。

一起來理解Java中的泛型

推薦學(xué)習(xí):《java視頻教程》

  • 泛型:是JDK5中引入的特性,可以在編譯階段約束操作的數(shù)據(jù)類型,并進(jìn)行檢查。
  • 泛型的格式:<數(shù)據(jù)類型>,注意:泛型只能支持引用數(shù)據(jù)類型
  • 集合體系的全部接口和實(shí)現(xiàn)類都是支持泛型的使用的。

優(yōu)點(diǎn):

  • 統(tǒng)一數(shù)據(jù)類型。
  • 把運(yùn)行的問題提前到編譯期間,避免了強(qiáng)制類型轉(zhuǎn)換可能出現(xiàn)的問題,因?yàn)榫幾g階段類型便可以確定下來。
public static void main(String[] args) {         List<String> list = new ArrayList<>();         list.add("石原里美");         list.add("工藤靜香");         list.add("朱茵");         for (String s : list) {             System.out.println(s);         }     } 輸出結(jié)果: 石原里美 工藤靜香 朱茵

并且泛型還可以在很多地方進(jìn)行定義,比如在類后面就是泛型類、方法聲明上就是泛型方法、接口后面就是泛型接口。接下來我們共同來學(xué)習(xí)一下這些泛型是如何使用的:

自定義泛型類

概念

  • 定義類的同時(shí)定義了泛型的類就是泛型類。
  • 泛型類的格式:修飾符 class 類名<泛型變量> { }
public class MyArrayList<E>{    }
  • 作用:編譯階段可以指定數(shù)據(jù)類型,類似于集合的作用

實(shí)戰(zhàn)教學(xué)

現(xiàn)創(chuàng)建一個(gè)泛型類,實(shí)現(xiàn)基本的增加、刪除操作,以此來具體了解其用法:

//泛型類MyArrayLIst public class MyArrayLIst<E> {     public void add(E e){      }     public void remove(E e){      } } //main public static void main(String[] args) {         MyArrayLIst<String> list = new MyArrayLIst<>();         //通過對(duì)泛型的設(shè)定,實(shí)現(xiàn)對(duì)數(shù)據(jù)專一處理         list.add("石原里美");         list.add("工藤靜香");         list.remove("工藤靜香");     }

泛型類的原理:

把出現(xiàn)泛型變量的地方全部替換成傳輸?shù)恼鎸?shí)的數(shù)據(jù)類型。

通過認(rèn)真觀察,其實(shí)不難去發(fā)現(xiàn),泛型類與普通類的最大區(qū)別在于在調(diào)用方法的時(shí)候可以統(tǒng)一的對(duì)同一種數(shù)據(jù)進(jìn)行處理,不會(huì)涉及到其他的數(shù)據(jù)類型,從一定程度上避免了強(qiáng)制類型轉(zhuǎn)化時(shí)可能會(huì)出現(xiàn)的問題。

一起來理解Java中的泛型

自定義泛型方法

概念

  • 定義方法的同時(shí)定義了泛型的方法就是泛型方法。
  • 泛型方法的格式:修飾符<泛型變量> 返回值類型 方法名(形參列表){ }
public <E> void view(E e){    }
  • 作用:方法中可以使用泛型接收一切實(shí)際類型的參數(shù),方法更具備通用性。
  • 注意:泛型方法需要區(qū)別于泛型類中所定義的方法,雖然它們也在使用泛型,但是該泛型不是其定義的,而是泛型類定義的。

實(shí)戰(zhàn)教學(xué)

無論傳入何種類型的數(shù)組,都可以返回它的內(nèi)容,即實(shí)現(xiàn)Arrays.toString()的作用

public static void main(String[] args) {         String [] name = {"石原里美","工藤靜香","朱茵"};         view(name);         Integer [] age = {18,19,20};         view(age);     }     public static  <T> void view(T[] arr){         StringBuilder list = new StringBuilder();         for (int i = 0; i < arr.length; i++) {             list.append(arr[i]).append("t");         }         System.out.println(list);     }

通過實(shí)現(xiàn)對(duì)泛型方法的定義,可以實(shí)現(xiàn)多種數(shù)據(jù)類型的接收,應(yīng)用范圍更加廣泛。

自定義泛型接口

概念

  • 使用泛型定義的接口就是泛型接口。
  • 泛型接口的格式:public interface People<E>{ }
public interface People <E>{    }
  • 作用:泛型接口可以讓實(shí)現(xiàn)類選擇當(dāng)前功能需要操作的數(shù)據(jù)類型

實(shí)戰(zhàn)教學(xué)

定義一個(gè)People接口,實(shí)現(xiàn)對(duì)老師Teacher類、學(xué)生Student等類的操作

//People接口 public interface People <E>{     void run(E e);     void height(E e); } //Student類 public class Teacher {  } //實(shí)現(xiàn)類Fantype public class Fantype implements People<Teacher> {      @Override     public void run(Teacher teacher) {      }      @Override     public void height(Teacher teacher) {      } }

通過對(duì)上述代碼的觀察,可以發(fā)現(xiàn),People后定義的是什么類型,那么該實(shí)現(xiàn)類只能對(duì)該種數(shù)據(jù)類型進(jìn)行操作,其他類型不可以進(jìn)行此操作。

通配符和上下限

通配符

  • ?可以在“使用泛型”的時(shí)候代表一切類型
  • E T K V是在定義泛型的時(shí)候用的

假設(shè)現(xiàn)在有一場(chǎng)為學(xué)生和老師而舉辦的比賽,需要比較速度究竟誰更快,分別創(chuàng)建一定數(shù)量的對(duì)象并將其傳入集合之中。然而當(dāng)我們將這兩個(gè)集合分別傳入方法中的時(shí)候,會(huì)發(fā)現(xiàn),學(xué)生對(duì)象集合list2出現(xiàn)報(bào)錯(cuò),為什么呢?原因是因?yàn)閿?shù)據(jù)類型不同,那么該如何使得兩種類型都可以傳入呢?或許這個(gè)時(shí)候就會(huì)有人說了:“既然兩個(gè)類都是People的子類,那么為什么不定義它的泛型是People呢?”這個(gè)想法很好,但是我們需要明確一點(diǎn)的是子類與父類雖然是有關(guān)系的,但是定義之后的集合是沒有關(guān)系的,所以這里是行不通的。

//main //老師對(duì)象集合 ArrayList<Teacher> list1 = new ArrayList<>(); list1.add(new Teacher()); list1.add(new Teacher()); pk(list1); //學(xué)生對(duì)象集合 ArrayList<Student> list2 = new ArrayList<>(); list2.add(new student()); list2.add(new student()); pk(list2);//由于pk方法的形參是泛型為Teacher的集合,所以會(huì)報(bào)錯(cuò) //父類 class People{      } //子類 class Teacher extends People{      } class student extends People{      } //pk方法: public static void pk(ArrayList<Teacher> people){ }

應(yīng)對(duì)這個(gè)問題,我們可以便可以將本篇文章引入的知識(shí)“通配符”放在實(shí)際應(yīng)用中解決問題了,通過其簡(jiǎn)短的概念“?可以在‘使用泛型’的時(shí)候代表一切類型”就可以理解其作用了,這里我們可以使用“?”共同代表兩種類型。

public static void pk(ArrayList<?> people){ //通過通配符?便可以將這個(gè)問題解決掉     }

上下限

然而此時(shí)又出現(xiàn)一個(gè)問題,定義了一個(gè)dog類,試圖創(chuàng)建一些對(duì)象并傳入集合中混入比賽,這種當(dāng)然情況當(dāng)然是不允許發(fā)生的,然而?是可以表示任意類型的,并不能對(duì)其進(jìn)行限制。因此上下限的作用就體現(xiàn)出來了:

  • 上限:<? extends 父類>,傳入類型必須是該父類或者是父類的子類
  • 下限:<? super 子類>,傳入類型必須是該子類或者是子類的父類
public static void pk(ArrayList<? extends People> people){ //通過上下限便可以將這個(gè)問題解決掉 //要求傳入的類型必須是People的子類才可以     }

推薦學(xué)習(xí):《java視頻教程》

贊(0)
分享到: 更多 (0)
?
網(wǎng)站地圖   滬ICP備18035694號(hào)-2    滬公網(wǎng)安備31011702889846號(hào)
久久精品五月,日韩不卡视频在线观看,国产精品videossex久久发布 ,久久av综合
国产精品亚洲综合在线观看| 欧美精品日日操| 精品一区二区三区视频在线播放| 亚洲免费影视| 群体交乱之放荡娇妻一区二区| 久久天堂影院| 成人国产精选| 国产成年精品| 91视频一区| 国产精品777777在线播放| 麻豆久久久久久久| 免费在线欧美黄色| 精品72久久久久中文字幕| 国产欧美自拍| 久久中文欧美| 91精品一区二区三区综合| 久久精品九色| 日韩欧美三级| 欧美另类专区| 亚洲tv在线| 亚洲精品在线国产| 五月天激情综合网| 老司机精品久久| 亚洲精品观看| 国产精品一国产精品k频道56| 久久99精品久久久野外观看| 国产欧美日韩一区二区三区在线| 免费在线观看一区| 国产精品va| 日韩欧美精品一区| 久久国产精品久久w女人spa| 亚洲午夜黄色| 国产精品腿扒开做爽爽爽挤奶网站| 国产在线成人| 亚洲精品欧洲| 国产精品99在线观看| 亚洲精品va| 日韩av一区二区三区四区| 午夜在线一区| 国产九一精品| 国产99久久| 日韩av网站免费在线| 精品久久久中文字幕| 99久精品视频在线观看视频| 亚洲精品日本| 亚洲精品在线影院| 日本一区二区三区视频在线看| 国产精品一区亚洲| 秋霞影视一区二区三区| 免费不卡在线视频| 精品国产乱码久久久久久樱花| 免费观看久久av| 亚洲精品一级二级三级| 色黄视频在线观看| 日本亚洲不卡| 三上悠亚国产精品一区二区三区| 免费不卡在线视频| 国产91在线播放精品| 亚洲欧美日本日韩| 欧美激情一区| 亚洲欧美日韩一区在线观看| 久久天堂影院| 一区二区小说| 国产日韩免费| 日韩视频久久| 欧美aⅴ一区二区三区视频| 国产色综合网| 精品国产一区二区三区噜噜噜| 久久不射网站| 蜜臀国产一区| 奇米777国产一区国产二区| 欧美中文一区二区| 麻豆精品新av中文字幕| 久久国产99| 亚洲最新无码中文字幕久久| 日本精品一区二区三区在线观看视频| 99视频精品视频高清免费| 亚洲一二av| 日韩欧美另类一区二区| 91精品国产自产精品男人的天堂 | 伊人影院久久| 国产aa精品| 久久精品72免费观看| 在线亚洲成人| 国产成人77亚洲精品www| 欧美日韩亚洲一区三区| 1024精品久久久久久久久| 国产一卡不卡| 欧美国产91| 成人在线黄色| 亚洲精品乱码久久久久久蜜桃麻豆 | 欧美亚洲激情| 国产一区二区三区视频在线| 午夜久久av| 一区福利视频| av综合电影网站| 精品一区电影| 国产三级精品三级在线观看国产| av成人国产| 久久高清免费| 最新中文字幕在线播放| 久久影院资源站| 久久亚洲二区| 激情偷拍久久| 五月激情久久| 精品国产中文字幕第一页 | 久久精品国产68国产精品亚洲| 精品国产欧美日韩一区二区三区| 国产视频网站一区二区三区| 日韩激情视频网站| 日韩影院在线观看| 亚洲综合三区| 天堂va蜜桃一区二区三区| 激情欧美日韩一区| 久久激情网站| 中文一区一区三区高中清不卡免费| 国产精品视频3p| 国产视频一区二| 国产精品一页| 国产麻豆精品| 国产精品天天看天天狠| 国产欧美丝祙| 国产精品tv| 久久av综合| 国产精品网在线观看| 国产精品嫩草影院在线看| 久久精品超碰| 免费在线日韩av| 国产一区二区三区四区| av免费不卡国产观看| 久久的色偷偷| 精品一级视频| 神马久久午夜| 激情欧美一区| 99国产精品视频免费观看一公开| 国产精品三上| 日本一区二区中文字幕| 亚洲日产av中文字幕| 亚洲免费影院| 婷婷精品在线| 国产精品极品在线观看| 国产精品嫩模av在线| 精品国产欧美日韩一区二区三区| 成人日韩av| 国精品一区二区| 亚洲福利久久| 久久香蕉精品| 国产精品巨作av| 麻豆视频一区| 色天使综合视频| 狠狠色综合网| 热久久久久久久| 亚洲影视一区| 久久av免费| 国产欧美一区二区三区精品酒店| 91久久久精品国产| 日韩高清一区在线| 高清不卡一区| 欧美另类专区| 91欧美日韩在线| 国产精品mm| 国产一区二区三区探花| 超级白嫩亚洲国产第一| 欧美一区二区三区高清视频| 视频在线观看国产精品| 国产亚洲电影| 91中文字幕精品永久在线| 好看的av在线不卡观看| 欧美一级全黄| 四虎4545www国产精品| 免费视频最近日韩| 久久精品一区二区国产| 蜜桃tv一区二区三区| 亚州av一区| 国内揄拍国内精品久久| 尤物tv在线精品| 亚洲aa在线| 一区二区三区四区日本视频| 久久成人精品| 国产精久久久| 欧美精品自拍| 国产欧美成人| 久久人人精品| 日韩二区三区在线观看| 波多野结衣久久精品| 在线一区欧美| 国产精品.xx视频.xxtv| 免费欧美一区| 欧美日韩亚洲一区在线观看| 久久精品高清| 国产调教一区二区三区| 国产精品99久久免费观看| 亚洲免费观看| 成人在线丰满少妇av| 日韩精品一区第一页| 水蜜桃久久夜色精品一区| 亚洲精品伊人| 亚洲小说欧美另类婷婷| 国产精品久久久久久模特 | 99热精品在线|