成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

Java泛型<T> T與T的使用方法詳解

瀏覽:4日期:2022-08-29 18:44:58

泛型(Generic type 或者 generics)是對(duì) Java 語(yǔ)言的類型系統(tǒng)的一種擴(kuò)展,以支持創(chuàng)建可以按類型進(jìn)行參數(shù)化的類。可以把類型參數(shù)看作是使用參數(shù)化類型時(shí)指定的類型的一個(gè)占位符,就像方法的形式參數(shù)是運(yùn)行時(shí)傳遞的值的占位符一樣。在集合框架(Collection framework)中泛型的身影隨處可見(jiàn)。例如,Map 類允許向一個(gè) Map 類型的實(shí)例添加任意類的對(duì)象,即使最常見(jiàn)的情況在給定映射(map)中保存一個(gè)string鍵值對(duì)。

命名類型參數(shù)

對(duì)于常見(jiàn)的泛型模式,推薦的泛型類型變量:

E:元素(Element),多用于java集合框架 K:關(guān)鍵字(Key) N:數(shù)字(Number) T:類型(Type) V:值(Value)

大家都知道,Java的泛型是偽泛型,這是因?yàn)镴ava在編譯期間,所有的泛型信息都會(huì)被擦除,正確理解泛型概念的首要前提是理解類型擦除。Java 泛型是如何工作的?什么是類型擦除?答:泛型是通過(guò)類型擦除來(lái)實(shí)現(xiàn)的,編譯器在編譯時(shí)擦除了所有泛型類型相關(guān)的信息,所以在運(yùn)行時(shí)不存在任何泛型類型相關(guān)的信息,譬如 List<Integer> 在運(yùn)行時(shí)僅用一個(gè) List 來(lái)表示,這樣做的動(dòng)機(jī)是兼容 Java 1.5 之前版本。

泛型擦除具體來(lái)說(shuō)就是在編譯成字節(jié)碼時(shí)首先進(jìn)行類型檢查,然后進(jìn)行類型擦除(即所有類型參數(shù)都用他們的限定類型替換,包括類、變量和方法),最后如果類型擦除和多態(tài)性發(fā)生沖突,就在子類中使用橋接方法解決;如果調(diào)用泛型方法的返回類型被擦除,則在調(diào)用該方法時(shí)插入強(qiáng)制類型轉(zhuǎn)換。在類型擦除中,編譯器確保不會(huì)創(chuàng)建額外的類,并且沒(méi)有運(yùn)行時(shí)開(kāi)銷。

類型擦除原則

用通用類型的類型參數(shù)替換其綁定的有界類型參數(shù); 如果使用無(wú)界類型參數(shù),則使用Object替換類型參數(shù); 插入類型轉(zhuǎn)換以實(shí)現(xiàn)類型安全; 生成橋接方法以在擴(kuò)展通用類型中保持多態(tài)。

<T> T 和T的區(qū)別:T是Type的首字母縮寫;<T> T 表示“返回值”是一個(gè)泛型,傳入什么類型,就返回什么類型;而單獨(dú)的“T”表示限制傳入的參數(shù)類型。

<T> T 的用法

這個(gè)<T> T 表示返回值T的類型是泛型,T是一個(gè)占位符,用來(lái)告訴編譯器,這個(gè)東西是先給我留著, 等我編譯的時(shí)候再告訴你是什么類型。

import org.springframework.util.CollectionUtils;import java.util.ArrayList;import java.util.List;public class Demo { public static void main(String[] args) { Demo demo = new Demo(); //獲取string類型 List<String> array = new ArrayList<String>(); array.add('test'); array.add('doub'); String str = demo.getListFisrt(array); System.out.println(str); //獲取Integer類型 List<Integer> nums = new ArrayList<Integer>(); nums.add(31); nums.add(32); Integer num = demo.getListFisrt(nums); System.out.println(num); } /** * 這個(gè)<T> T 可以傳入任何類型的List * 關(guān)于參數(shù)T * 第一個(gè) 表示是泛型 * 第二個(gè) 表示返回的是T類型的數(shù)據(jù) * 第三個(gè) 限制參數(shù)類型為T * * @param data * @return */ private <T> T getListFisrt(List<T> data) { if (CollectionUtils.isEmpty(data)) { return null; } return data.get(0); }}

T 的用法

單獨(dú)的T表示限制參數(shù)的類型。這種用法一般多用于共同操作一個(gè)類對(duì)象,然后獲取里面的集合信息。

import java.util.ArrayList;import java.util.List;public class Demo2<T> { public static void main(String[] args) { //限制T 為String 類型 Demo2<String> demo = new Demo2<String>(); List<String> array = new ArrayList<String>(); array.add('Tom'); array.add('河南'); String str = demo.getListFisrt(array); System.out.println(str); //獲取Integer類型 Demo2<Integer> demo2 = new Demo2<Integer>(); List<Integer> nums = new ArrayList<Integer>(); nums.add(12); nums.add(13); Integer num = demo2.getListFisrt(nums); System.out.println(num); } /** * 這個(gè)只能傳遞T類型的數(shù)據(jù) * 返回值 就是Demo<T> 實(shí)例化傳遞的對(duì)象類型 * * @param data * @return */ private T getListFisrt(List<T> data) { if (data == null || data.size() == 0) { return null; } return data.get(0); }}

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Java
相關(guān)文章:
成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久
国产精品一区2区| 日本一道高清亚洲日美韩| 视频一区在线视频| 99国内精品久久久久久久软件| 精品久久久久久亚洲综合网| 蜜臀av性久久久久蜜臀av麻豆| 亚洲一区二区四区| 一区二区三区在线免费观看| 红桃视频亚洲| 精品国产一区a| 粉嫩13p一区二区三区| 3d动漫精品啪啪一区二区竹菊| 日韩av中文字幕一区二区| 国产精品一区在线播放| 亚洲精品日韩一| 91久久综合| 亚洲婷婷综合久久一本伊一区| 国产精品99一区二区| 久久人人爽爽爽人久久久| 成人美女视频在线观看18| 欧美一级xxx| 国产剧情一区在线| 欧美日韩国产大片| 国产一区二区免费视频| 欧美日韩免费观看一区二区三区| 日韩电影免费在线观看网站| 久久久久久一区二区| 丝袜亚洲另类欧美综合| 一本大道久久a久久综合婷婷| 日韩精品电影在线| 日本高清免费不卡视频| 韩国女主播成人在线| 欧美高清你懂得| 国产 日韩 欧美大片| 久久久精品免费观看| 欧美欧美天天天天操| 国产精品久久看| 亚洲区一区二| 激情图片小说一区| 欧美电影影音先锋| 成人开心网精品视频| 欧美国产日韩亚洲一区| 最新亚洲一区| 亚洲狠狠爱一区二区三区| 久久亚洲综合| 日韩电影免费在线| 91精品国产一区二区三区蜜臀| 成人免费视频播放| 中文字幕乱码一区二区免费| 亚洲人www| 亚洲大型综合色站| 日本韩国欧美在线| 国产不卡在线一区| 国产欧美日韩亚州综合| 亚洲一二三区精品| 亚洲va韩国va欧美va| 在线看国产日韩| 国产精品资源在线| 国产亲近乱来精品视频| 欧美日产一区二区三区在线观看| 亚洲男人的天堂av| 欧美综合国产| 美日韩黄色大片| 91精品国产欧美日韩| 成人动漫精品一区二区| 中文字幕av资源一区| 国产偷自视频区视频一区二区| 日本不卡一二三| 欧美一二三四在线| 欧美精品色网| 亚洲大片在线观看| 日韩区在线观看| 影音先锋中文字幕一区| 奇米影视一区二区三区| 日韩免费成人网| 黄色日韩精品| 美女一区二区三区| 国产亚洲精品bt天堂精选| 国产精品一国产精品k频道56| 精品一区二区三区香蕉蜜桃| 国产女同性恋一区二区| 久久蜜桃资源一区二区老牛| 成人中文字幕电影| 亚洲国产日韩在线一区模特| 欧美二区乱c少妇| 亚洲激情不卡| 久久99精品视频| 欧美国产日本视频| 美女91精品| 成人av在线资源网站| 伊人一区二区三区| 在线成人免费视频| 午夜日韩激情| 久久国产欧美日韩精品| 久久综合久久99| 免费在线欧美黄色| 成人h精品动漫一区二区三区| 亚洲国产一区二区在线播放| 777久久久精品| 韩国一区二区三区在线观看 | 精品伦理精品一区| 国产伦精品一区二区三区照片91| 国产91对白在线观看九色| 亚洲精品写真福利| 91精品黄色片免费大全| 99精品视频免费全部在线| 国产精品中文字幕一区二区三区| 亚洲手机成人高清视频| 欧美一区二区三区小说| 亚洲国产精品www| 国产精品一区在线观看乱码| 一区二区三区精品久久久| 日韩欧美国产综合一区| 国产日韩专区| av亚洲精华国产精华精华| 五月综合激情网| 欧美经典一区二区| 欧美日韩一区中文字幕| 99精品欧美一区二区三区| av在线不卡网| 久久国产剧场电影| 一区二区三区四区在线免费观看| 日韩视频一区二区| 色婷婷av久久久久久久| 国精品一区二区三区| 国产成人综合视频| 香蕉久久一区二区不卡无毒影院| 国产情人综合久久777777| 欧美日韩和欧美的一区二区| 日韩午夜免费| 色综合色综合色综合| 国产乱淫av一区二区三区| 亚洲精品久久久蜜桃| 久久九九全国免费| 日韩精品一区二区三区中文精品| 一本一道综合狠狠老| 亚洲国产网站| 99riav一区二区三区| 国产激情精品久久久第一区二区| 日本成人在线一区| 亚洲国产日韩在线一区模特| 国产精品美女久久久久aⅴ| 欧美不卡激情三级在线观看| 91精品1区2区| 国产精品日韩一区二区 | 91小视频免费观看| 韩国成人福利片在线播放| 亚洲成av人片一区二区三区| 国产精品剧情在线亚洲| 精品久久久久香蕉网| 6080国产精品一区二区| 在线中文字幕不卡| 久久精品观看| 国产精品一区二区三区四区五区 | 亚洲色欲色欲www| 欧美激情一区二区三区不卡 | 91美女片黄在线观看91美女| 国产精品香蕉一区二区三区| 日韩va亚洲va欧美va久久| 亚洲午夜国产一区99re久久| 亚洲欧美一区二区视频| 欧美激情一区不卡| 亚洲精品在线三区| 91精品国产麻豆| 欧美挠脚心视频网站| 色婷婷av一区二区三区软件 | 国产情人综合久久777777| 久久综合精品国产一区二区三区| 欧美一级一级性生活免费录像| 欧美日韩一区二区三区四区五区 | 激情亚洲综合在线| 欧美aa在线视频| 亚洲成a人片在线不卡一二三区| 亚洲精品视频观看| 亚洲乱码国产乱码精品精98午夜 | 亚洲欧美日韩小说| 亚洲人成7777| 亚洲猫色日本管| 亚洲精品国产品国语在线app| 中文字幕亚洲欧美在线不卡| 国产精品色呦呦| 中文字幕在线不卡| 欧美国产精品v| 中文字幕不卡在线观看| 国产精品视频在线看| 国产精品拍天天在线| 中文字幕亚洲精品在线观看| 国产精品理伦片| 亚洲美女精品一区| 亚洲国产视频a| 视频一区视频二区在线观看| 日韩一区精品视频| 日本成人中文字幕| 经典三级视频一区| 处破女av一区二区| 成人理论电影网| 欧美一区二区三区在线播放| 色综合天天性综合| 精品成人免费| 国产精品久久久对白|