成人怡红院-成人怡红院视频在线观看-成人影视大全-成人影院203nnxyz-美女毛片在线看-美女免费黄

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

一起來理解Java中的泛型

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

一起來理解Java中的泛型

推薦學習:《java視頻教程》

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

優(yōu)點:

  • 統(tǒng)一數(shù)據(jù)類型。
  • 把運行的問題提前到編譯期間,避免了強制類型轉換可能出現(xiàn)的問題,因為編譯階段類型便可以確定下來。
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);         }     } 輸出結果: 石原里美 工藤靜香 朱茵

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

自定義泛型類

概念

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

實戰(zhàn)教學

現(xiàn)創(chuàng)建一個泛型類,實現(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<>();         //通過對泛型的設定,實現(xiàn)對數(shù)據(jù)專一處理         list.add("石原里美");         list.add("工藤靜香");         list.remove("工藤靜香");     }

泛型類的原理:

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

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

一起來理解Java中的泛型

自定義泛型方法

概念

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

實戰(zhàn)教學

無論傳入何種類型的數(shù)組,都可以返回它的內(nèi)容,即實現(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);     }

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

自定義泛型接口

概念

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

實戰(zhàn)教學

定義一個People接口,實現(xiàn)對老師Teacher類、學生Student等類的操作

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

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

通配符和上下限

通配符

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

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

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

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

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

上下限

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

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

推薦學習:《java視頻教程》

贊(0)
分享到: 更多 (0)
?
網(wǎng)站地圖   滬ICP備18035694號-2    滬公網(wǎng)安備31011702889846號
国产 国语对白 露脸| 亚洲乱码无人区卡1卡2卡3| 国产精品久久一区二区三区蜜桃| 日本高清在线视频WWW色| 九九国产精品无码免费视频| 午夜自慰喷水女成人AV| 国产日韩AV免费无码一区二区| 亚洲欧美中文日韩V在线观看| 老头猛的挺进她莹莹的体导演是谁| 柚子猫原神甘雨视内射频| 欧洲成人午夜精品无码区久久| 国产大屁股喷水视频在线观看| 12一14性XXXXX国产| 少妇无码太爽了不卡视频在线看| 久久精品九九亚洲精品| 国产XXXX69真实实拍| 丰满的继牳3中文字幕系列免费| 国产精品色视频ⅩXXX| 狠狠噜天天噜日日噜视频麻豆| 久久精品第九区免费观看| 女人18片毛片60分钟| 日本亚洲色大成网站www久久| 无码人妻精品一区二区三区下载 | 337P人体粉嫩胞高清大图AV| JLZZJLZZ亚洲| 国产精品毛片无遮挡高清| 久久精品国产免费播高清无卡| 农里粗汉的共妻嗯啊高H| 色一情一乱一伦一区二区三欧美| 亚洲AV成人午夜福利在线观看| 曰韩欧美群交P片内射| 成年女人WWXX免费国产| 国产亚洲欧美在线专区| 没带罩子让他吃了一天药会怎样| 日韩视频在线观看| 亚洲精品无码久久千人斩| 欧美丰满熟妇BBB久久久| 俄罗斯1317大但人文艺术| 风流少妇又紧又爽又丰满| 亚洲A级成人无码网站| 免费无码AV一区二区波多野结衣| 成人亚洲欧美在线观看| 亚洲熟妇无码AV| 玩弄CHANEL妇熟女| 日本VA视频免费在线观看| 蜜臀AV网站在线| 久久久久影院美女国产主播| JIZZ中国女人奶水多| 亚洲精品乱码久久久久久蜜桃图片 | 国产成人AV在线影院| 特大巨黑吊XXXX高潮| 久久精品WWW人人做人人爽 | 欧美人妻久久精品| 国产猛男猛女超爽免费视频| 成人欧美一区二区三区1314| 97人妻碰碰视频免费上线| 亚洲熟妇无码A∨| 亚洲男人的天堂在线播放 | 男女作爱免费网站| 国产精品久久久久久亚洲AV| 一本大道东京热无码视频| 亚洲无码视频一区二区| 天干天干啦夜天天喷水| 天堂AV无码大芭蕉伊人AV不卡| 未成18不能看的视频| 无人区码一码二码三码区别在哪里 | 搡老女人ⅩXXX搡老女人电影看| 色噜噜狠狼综合在线视频| 色综合久久中文字幕无码| 偷朋友人妻系列H文| 亚洲成AV人片天堂网| 玉蒲团Ⅲ艳乳欲仙| 亚洲中文字幕无码AV| 1000部拍拍拍18勿入免费视| 亚洲精品国产成人AV| 夜夜高潮夜夜爽高清完整版1| 主人 跪好 知道错了吗| 成人免费无码H黄网站WWW| 暗夜免费观看在线完整版| 国产成人久久精品二区三区| 国产最变态调教视频| 老公带朋友来家里C我怎么办| 欧洲美女粗暴交视频| 无码综合天天久久综合网色吧影院| 亚洲AV乱码久久精品密桃| 中文字幕肉感巨大的乳专区| 荡女小姿的YIN乱生活| 九九精品国产亚洲AV日韩| 女人越喊男人越往里寨电视剧| 人妻丰满熟妇AⅤ无码| 亚洲AV熟女高潮30P| 亚洲日韩激情无码一区| А√天堂资源中文在线官网| 国产三级多多影院| 欧美精品偷自拍另类在线观看 | 国产精品99久久99久久久动漫| FREEⅩ性CHINESE中国| 公交车强摁做开腿呻吟| 精品亚洲国产成人AV不卡| 日本另类ΑV欧美另类AⅤ| 婷婷俺也去俺也去官网| 中文日本字幕MV在现线观看| 都市 亚洲 自拍 小说 校园| 精品视频一区二区三区在线观看| 两个男用舌头到我的蕊花| 男生把QQ放进女生的QQ里韩剧| 久久久久久精品免费免费直播| 丝袜美女人体艺术| 我和公发生了性关系视频| 18禁止看的免费污网站| 久久中文字幕无码专区| 肉大捧一进一出免费视频| 亚洲第一无码精品一区| 懂色av一区二区三区蜜臀| 久久久久亚洲AV片无码| 色欲老女人人妻综合网 | 久久久久精品国产99久久综合| 无码一区二区三区视频| 丰满妇女强高潮ⅩXXX| 欧美性受XXXX喷潮| 97夜夜澡人人爽人人喊A| 绿帽娇妻在卧室疯狂的呻吟 | 国产对白videos麻豆高潮| 麻豆国产96在线 | 日韩| 性孕交大肚子孕妇| 成人在线高清不卡免费视频| 老熟女多次高潮露脸视频| 一本色道久久88综合日韩精品| 精品久久免费一区二区三区四区| 丝袜人妻无码中文字幕综合网| 丰满人爽人妻AXXXXHD| 欧美成在线精品视频| 99久久人妻无码精品系列| 免费看成熟丰满少妇AⅤ无码精品| 欧美日韩无线码在线观看| 在线中文天堂最新版WWW| 鲁鲁鲁爽爽爽在线视频观看| 亚洲中文字幕久久精品无码APP| 精品人妻暴躁一区二区三区| 亚洲精品无码专区在线播放| 国产精品久久久久久精品电影| 同学要做吗PO爱喝花茶的小酥肉| 调教后把奶头拴在跑步机上虐 | 亚洲欧美偷国产日韩| 久久久久国产亚洲AⅤ麻豆| 亚洲AV无码精品色午夜| 精品无码久久久久久国产| 亚洲中文久久精品无码WW16| 妺妺窝人体色WWW网| 51无人区码一码二码三码| 日本高清在线一区二区三区| 成人做爰高潮A片免费视频| 污的你下面一直滴水的句子| 丰满人妻少妇无码喷水| 亚洲AV永久无码精品放毛片一| 激情男女高潮射精AV免费| 中国熟妇人妻XXXXX中文| 色噜噜狠狠色综合无码AV天堂| 成年无码动漫AV片在线尤物| 日日狠狠久久偷偷色综合免费| 差差差很疼APP大全免费下载软| 香港三日本三级少妇三级2021| 久久久亚洲熟妇熟女ⅩXXX直播| 高H闺蜜老公1V1| 找老女人泻火对白自拍| 无码国产偷倩在线播放| 欧美黑人巨大最猛性XXXXX| 精品国产AⅤ一区二区三区4区| 成人免费看WWW网址入口| 永久免费观看国产裸体美女| 翁止熄痒苏钥第9章的内容| 人妻少妇偷人精品视频| 老太太BGMBGMBGM11| 黑人巨大xxxx| 国产成人午夜福利院| JAZZJAZZ国产精品| 亚洲中文字幕AⅤ天堂| 无线乱码A区B区C区D| 色播久久人人爽人人爽人人片AV| 免费看的WWW哔哩哔哩| 久久久久久久精品免费久精品蜜桃| 国产色母和进口色母区别| 国产AV国片精品一区二区| YINLUAN小镇公交车尺寸| 18亚洲AV无码成人国产| 一二三四免费观看在线6| 亚洲国产精品福利片在线观看 | 在图书馆揉捏她的双乳| 免费AV片在线观看无需播放器| 办公室被公司领导C了很多次 | 韩漫无羞遮无删减漫免费| 在教室伦流澡到高潮H强圩电影| 日产无人区一线二线三线观看 | 中国熟妇毛多多裸交视频| 人人人妻人人澡人人爽| 国产亚洲欧美日韩二三线| 中文字幕无线码中文字幕免费| 调教后把奶头拴在跑步机上虐 | 无码少妇一区二区浪潮免费| 麻豆av无码人妻一区二区三区|