激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|

香港云服务器
服務器之家 - 編程語言 - JAVA教程 - Java中泛型的用法總結

Java中泛型的用法總結

2019-12-20 14:41liuzx32 JAVA教程

這篇文章主要介紹了Java中泛型的用法,實例總結了java中泛型的常見使用技巧,需要的朋友可以參考下

本文實例總結了Java中泛型的用法。分享給大家供大家參考。具體如下:

1 基本使用

?
1
2
3
4
public interface List<E> {
 void add(E);
 Iterator<E> iterator();
}

2 泛型與子類

Child是Parent的子類,List<Child>卻不是List<Parent>的子類。
因此:List<Object> list = new ArrayList<String>()是錯誤的。
如果上面是正確的,那么:

?
1
2
3
4
List<String> ls = new ArrayList<String>(); //1
List<Object> lo = ls; //2
lo.add(new Object()); // 3
String s = ls.get(0); // 4,將object轉換為string將失敗。

3 wildcards

因為2的原因,下面的實現用于統配集合的輸出是不行的

?
1
2
3
4
5
void printCollection(Collection<Object> c) {
 for (Object o: c) {
 // do something
 }
}

因此,需要通配符?:

?
1
2
3
4
5
void printCollection(Collection<?> c) {
 for (Object o: c) { // 1
 // do something
 }
} // ok

此處的?表示類型未知,但是任何對象均是Object,因此上例的1是正確的。但下例卻是錯誤的:

?
1
2
3
void add(Collection<? extends MyClass> c) {
 c.add(new MyClass()); // wrong
} // ok

原因也很明確,? extends MyClass說明類型是MyClass的子類,但是卻并不知道具體類型

4. 泛型方法

上例可以實現為:

?
1
2
3
<T> add(Collection<T> c, T t) {
 c.add(t);
}

編譯器在保證語義的前提,會幫忙做類型的轉換工作。

5. 泛型運行時的對比

?
1
2
3
List<String> l1 = new ArrayList<String>();
List<Integer> l2 = new ArrayList<Integer>();
System.out.println(l1.getClass() == l2.getClass()); // true

因為泛型類運行時時一樣的。

6 泛型數組(可能導致類型不安全)

 

復制代碼 代碼如下:
List<String>[] lsa = new ArrayList<String>[10]; // error

 

如果可以的話,可能導致類型不安全。如:

?
1
2
3
4
5
6
Object o = lsa;
Object []oa = (Object[])o;
List<Integer> li = new ArrayList<Integer>();
li.add(new Integer(3));
oa[1] = li;
String s = lsa[1].get(0); // runtime error

希望本文所述對大家的java程序設計有所幫助。

延伸 · 閱讀

精彩推薦
513
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25
主站蜘蛛池模板: 97久久日一线二线三线 | 国产做爰| 久久久一区二区 | 欧美在线a| 精品国产高清一区二区三区 | 黄色试看视频 | 成人短视频在线播放 | 亚洲国产一区二区三区 | 欧美jizzhd极品欧美 | 欧美在线成人影院 | 九九精品影院 | 九艹在线| 国产免费区 | 日韩精品中文字幕在线观看 | 爱高潮www亚洲精品 欧美黄色一级片视频 | 日韩欧美电影在线观看 | 一区国产精品 | 久久免费精品 | 亚洲一区在线免费视频 | 在线成人免费av | 久草成人在线观看 | 26uuu成人人网图片 | 精品久久中文网址 | 成人在线观看免费视频 | 国产88久久久国产精品免费二区 | 蜜桃视频网站www | 国产日产精品久久久久快鸭 | 午夜小视频免费观看 | 欧美日韩精品一二三区 | 欧美雌雄另类xxxxx | 久章草影院 | 色婷婷久久久亚洲一区二区三区 | 91看片免费看 | 国产精品一区二区x88av | 欧美日韩在线影院 | h色在线观看 | 国产精品成人亚洲一区二区 | 亚洲人成网站免费播放 | 国产精品午夜未成人免费观看 | 日本精品一区二区 | 在线免费日本 |