日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

JAVA泛型--待续

發(fā)布時(shí)間:2023/12/2 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 JAVA泛型--待续 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

原做法:

?

Map m = new HashMap();
m.put("key", "blarg");
String s = (String) m.get("key");

泛型做法:

Map<K,V> m = new HashMap()<K,V>;
m.put("key", "blarg");//非<K,V>類型無法操作
String s = m.get("key");//獲取無須強(qiáng)制轉(zhuǎn)換

?

1:泛型(Generic type 或者 generics),對(duì)象類型的擴(kuò)展,在對(duì)象類型相同情況下的一個(gè)參數(shù)化限定。

2:好處:提高程序的類型安全,將類型檢查從運(yùn)行時(shí)提前到編譯時(shí),入?yún)⑾薅z查阻止錯(cuò)誤輸入,出參無須強(qiáng)制類型轉(zhuǎn)換。原類型可能對(duì)應(yīng)的Object限定,實(shí)際運(yùn)用需要更加細(xì)化。

3:它是編譯階段的類型檢查,加泛型不影響JVM和類文件,反射操作可繞過泛型限定;

4:適用對(duì)象:除了異常類型、枚舉或匿名內(nèi)部類以外,任何類都可以具有類型參數(shù)

5:方式:聲明對(duì)象時(shí),使用<>加上大寫單字母,

  字母推薦: K —— 鍵,比如映射的鍵。?
        V —— 值,比如 List 和 Set 的內(nèi)容,或者 Map 中的值。?
        E —— 異常類。?
        T ——?泛型。

6:注意:泛型不是 協(xié)定?的(協(xié)定的意思:假設(shè)A擴(kuò)展自B,則使用B的地方可以使用A,即A是B的一種,非協(xié)變即泛型不支持繼承,比較嚴(yán)格)

 協(xié)定eg:

  Integer[] intArray = new Integer[10];?
  Number[] numberArray = intArray;//valid

 非協(xié)定eg1:

  List<Integer> intList = new ArrayList<Integer>();
  List<Number> numberList = intList; // invalid

  numberList.add(new Float(3.1415));//編譯出錯(cuò),此處numberList是intList引用

 非協(xié)定eg2:

  void printList(List l) { //入?yún)可能因?yàn)閰?shù)類型限定為原始類型而出現(xiàn)類型不安全,假設(shè)入?yún)長(zhǎng)ist<Integer>
    for (Object o : l)
      System.out.println(o);
  }

 

 非協(xié)定eg3:

  void printList(List<Object> l) {?//假設(shè)入?yún)長(zhǎng)ist<Integer>,而List<Integer>不是List<Object>,參看非協(xié)變eg1.
    for (Object o : l)?
      System.out.println(o);?
  }

 由此引出 通配符 ? 通配符的引入在于可以安全檢索元素(類型的任意限定肯定是擴(kuò)展自O(shè)bject),而非添加元素(編譯器并不知道原類型的限定,添加是未知的,不被允許的)

 非協(xié)定eg4:

  void printList(List<?> l) {?//List<?> 是任何泛型?List 的父類型,所以完全可以將 List<Object>、List<Integer> 或 List<List<List<Flutzpah>>> 傳遞給 printList()
    for (Object o : l)?
      System.out.println(o);?
  }

7:泛型類(在類定義中添加一個(gè)形式類型參數(shù)列表),根據(jù)該定義可以在多個(gè)方法簽名中實(shí)施類型約束

8:方法的泛型化與所在的類是否為泛型類無關(guān),泛型方法用于在該方法的多個(gè)參數(shù)之間宣稱一個(gè)類型約束

eg:

  public <T> T ifThenElse(boolean b, T first, T second) {//不用顯式地告訴編譯器T是什么,它只需要做到帶T的參數(shù)及返回值都是同一類型即可
    return b ? first : second;
  }

9:泛型類和泛型方法的選擇

  a:當(dāng)泛型方法是靜態(tài)方法時(shí),編譯器無法知道該類到底是什么泛型,故不用泛型類而用泛型方法

  b:當(dāng)T約束僅針對(duì)方法,局部約束的時(shí)候不需要泛型類,因?yàn)榉盒皖惖募s束會(huì)導(dǎo)致所有的實(shí)例對(duì)象都是用的同一個(gè)T,導(dǎo)致該方法也是使用的同一個(gè)T,而存在這種需求:A類的實(shí)例a1和a2的方法的類型約束不需要一樣;

10:限定類型,附加約束(類-----無泛型,類類型-------一般泛型,類類型約束------帶約束泛型)

eg:

  public class Matrix<V extends Number> { ... }//Matrix由哪個(gè)泛型限定不知道,但必須是Number或Number子類;若無泛型,假設(shè)由Object限定,這樣可以解釋List.get() 在 List<?> 上調(diào)用時(shí)返回 Object

  public static void main(String[] args) {
    Matrix<Number> in = new Matrix<Number>();//valid

    Matrix<Integer> in = new Matrix<Integer>();//valid

    Matrix<Float> in = new Matrix<Float>();//valid

  }

?

整理自:http://www.cnblogs.com/panjun-Donet/archive/2008/09/27/1300609.html

?

轉(zhuǎn)載于:https://www.cnblogs.com/onlyEnglish/p/8784787.html

總結(jié)

以上是生活随笔為你收集整理的JAVA泛型--待续的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 日韩爱爱爱 | 波多野结衣视频在线 | 污污内射久久一区二区欧美日韩 | 丰满少妇熟乱xxxxx视频 | www.日| 亚洲在线视频播放 | 91学生片黄 | 最近中文字幕av | 久久久久久草 | 亚洲午码 | 国产激情无码一区二区三区 | 日韩不卡在线 | 快射视频网站 | 欧美一级在线免费 | 中国性猛交 | 精品一区二区三区免费 | 亚洲专区视频 | 久久天堂影院 | 成年男女免费视频 | 黑人借宿巨大中文字幕 | 午夜大片网 | av先锋资源网 | 梦梦电影免费高清在线观看 | 国产一区二区伦理 | 成人精品视频一区二区 | 香蕉视频在线免费播放 | 桃色视屏 | 全程偷拍露脸中年夫妇 | 亚洲天堂av电影 | 男女视频一区 | exo妈妈mv在线播放免费 | 色呦呦影院| 欧美乱轮 | 干欧美少妇 | 午夜综合| 91精品国产一区二区三竹菊影视 | 天堂中文在线看 | 婷婷色影院| 成人动漫视频在线观看 | 国精产品一区二区 | 91一区二区三区在线观看 | 三上悠亚久久精品 | 777米奇影视第四色 五月丁香久久婷婷 | 亚洲天天视频 | 年代下乡啪啪h文 | 国产综合精品 | 人人草网 | 久久久久亚洲精品中文字幕 | 91狠狠操| 国产精品丝袜视频无码一区69 | 亚洲精品白浆 | 毛片视屏 | 亚洲精品视频播放 | 男女午夜免费视频 | 韩日精品在线观看 | 首尔之春在线看 | 亚洲依依 | 丝袜诱惑av| 欧美不卡三区 | 亚洲综合免费 | 久久精品国产亚洲av嫖农村妇女 | 91蝌蚪少妇偷拍 | 糖心logo在线观看 | 日本在线视频一区 | 一进一出好爽视频 | 农民人伦一区二区三区 | 亚洲国产欧美一区 | 香蕉日日 | 欧美三级一区二区三区 | 亚洲av成人精品午夜一区二区 | 国产精品99久久久久久宅男 | 中文在线观看免费网站 | 我们的2018中文免费看 | 97蜜桃网| 91偷拍网站 | 日本国产三级xxxxxx | 亚洲成人乱码 | 毛片网站免费观看 | 成人免费毛片网 | 午夜成人免费视频 | 国产+高潮+白浆+无码 | 国产三区在线成人av | www.国产视频| 69视频网 | а√天堂8资源中文在线 | 久久影院国产 | 香港三级日本三级韩国三级 | 亚洲国产精品久久久久 | 欧美综合亚洲图片综合区 | 亚洲一区二区视频在线播放 | 久久综合成人网 | 国内成人av | 永久免费国产 | 天天草综合 | 怡春院国产 | 色欧美综合 | 91精品在线观看视频 | 午夜整容室 | 免费黄色在线网站 |