上篇我們簡單的介紹了java中泛型的最基本的內(nèi)容,知道了什么是泛型以及泛型對(duì)我們的程序編寫有什么好處,最后一類型限定收尾。本篇將從類型限定開始闡述java泛型中很重要的概念:通配符
一、何為通配符
首先我們看一段代碼:
/*我們聲明了一個(gè)泛型方法*/public class Pair<T> {
public static <T extends Double> void show(myArray<T> a){
}
}
上文聲明了一個(gè)泛型方法,但是實(shí)在是太過啰嗦,于是我們可以使用通配符來簡化這種泛型方法的聲明形式。有時(shí)我們也稱通配符為更加簡潔的類型變量的限定。接下來我們看看使用通配符如何聲明一個(gè)泛型方法。
public class Pair<T> {
public static void show(myArray<? extends Double> a){
}
}
對(duì)比兩段代碼,我們可以看出來,類型限定也就是<T extends Double>主要用于類型參數(shù)的定義,聲明在訪問修飾符后面函數(shù)返回值之前;而通配符也就是<? extends Double>主要用于實(shí)例化類型參數(shù),聲明在類型變量之前,簡化了泛型方法的聲明。所以,凡是可以由通配符實(shí)現(xiàn)的都可以使用類型限定來實(shí)現(xiàn),因?yàn)橥ㄅ浞呛喕说念愋拖薅ā?br/>二、通配符的只讀性
以上是這個(gè)通配符的一個(gè)特性,通配符的只讀性是其第二個(gè)重要特性,我們知道:Child類繼承于Base類是不能推出Pair<Child>繼承于Pair<Base>的,所以:
public static void print(Pair<Base>){
}
延伸閱讀
- ssh框架 2016-09-30
- 阿里移動(dòng)安全 [無線安全]玩轉(zhuǎn)無線電——不安全的藍(lán)牙鎖 2017-07-26
- 消息隊(duì)列NetMQ 原理分析4-Socket、Session、Option和Pipe 2024-03-26
- Selective Search for Object Recognition 論文筆記【圖片目標(biāo)分割】 2017-07-26
- 詞向量-LRWE模型-更好地識(shí)別反義詞同義詞 2017-07-26
- 從棧不平衡問題 理解 calling convention 2017-07-26
- php imagemagick 處理 圖片剪切、壓縮、合并、插入文本、背景色透明 2017-07-26
- Swift實(shí)現(xiàn)JSON轉(zhuǎn)Model - HandyJSON使用講解 2017-07-26
- 阿里移動(dòng)安全 Android端惡意鎖屏勒索應(yīng)用分析 2017-07-26
- 集合結(jié)合數(shù)據(jù)結(jié)構(gòu)來看看(二) 2017-07-26