一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達(dá)式|C/C++|IOS|C#|Swift|Android|VB|R語(yǔ)言|JavaScript|易語(yǔ)言|vb.net|

服務(wù)器之家 - 編程語(yǔ)言 - Java教程 - java中g(shù)eneric實(shí)例詳解

java中g(shù)eneric實(shí)例詳解

2021-02-21 11:13indexman Java教程

這篇文章主要介紹了java中g(shù)eneric實(shí)例詳解,具有一定參考價(jià)值,需要的朋友可以了解下。

一介紹:

在JavaSE1.5之前,沒有泛型的情況的下,通過對(duì)類型Object的引用來(lái)實(shí)現(xiàn)參數(shù)的“任意化”,“任意化”帶來(lái)的缺點(diǎn)是要做顯式的強(qiáng)制類型轉(zhuǎn)換,而這種轉(zhuǎn)換是要求開發(fā)者對(duì)實(shí)際參數(shù)類型可以預(yù)知的情況下進(jìn)行的。對(duì)于強(qiáng)制類型轉(zhuǎn)換錯(cuò)誤的情況,編譯器可能不提示錯(cuò)誤,在運(yùn)行的時(shí)候才出現(xiàn)異常,這是一個(gè)安全隱患。

泛型的好處是在編譯的時(shí)候檢查類型安全,并且所有的強(qiáng)制轉(zhuǎn)換都是自動(dòng)和隱式的,提高代碼的重用率。

二、泛型參數(shù):

java" id="highlighter_174066">
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
class Gen<T> {
    private T ob;
    //定義泛型成員變量
    public Gen(T ob) {
        this.ob = ob;
    }
    public T getOb() {
        return ob;
    }
    public void setOb(T ob) {
        this.ob = ob;
    }
    public void showType() {
        System.out.println("T的實(shí)際類型是: " + ob.getClass().getName());
    }
}
public class GenericParameter {
    public static void main(String[] args){
        //定義泛型類Gen的一個(gè)Integer版本
        Gen<Integer> intOb=new Gen<Integer>(100);
        intOb.showType();
        int i= intOb.getOb();
        System.out.println("value= " + i);
        System.out.println("----------------------------------");
        //定義泛型類Gen的一個(gè)String版本
        Gen<String> strOb=new Gen<String>("Hello Dylan!");
        strOb.showType();
        String s=strOb.getOb();
        System.out.println("value= " + s);
    }
}

output:

T的實(shí)際類型是: java.lang.Integer
value= 100
----------------------------------
T的實(shí)際類型是: java.lang.String
value= Hello Dylan!

三、泛型類:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
class GenericsFoo<T> {
    private T x;
    public GenericsFoo(T x) {
        this.x = x;
    }
    public T getX() {
        return x;
    }
    public void setX(T x) {
        this.x = x;
    }
}
public class GenericClass {
    public static void main(String args[]){
        GenericsFoo<String> strFoo=new GenericsFoo<String>("Hello Generics!");
        GenericsFoo<double> douFoo=new GenericsFoo<double>(new double("33"));
        GenericsFoo<Object> objFoo=new GenericsFoo<Object>(new Object());
        System.out.println("strFoo.getX="+strFoo.getX());
        System.out.println("douFoo.getX="+douFoo.getX());
        System.out.println("objFoo.getX="+objFoo.getX());
    }
}

output:

strFoo.getX=Hello Generics!
douFoo.getX=33.0
objFoo.getX=java.lang.Object@1d0fafc

四 限制泛型:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
import java.util.ArrayList;
import java.util.Collection;
class CollectionGenFoo<T extends Collection> {
    private T x;
    public CollectionGenFoo(T x) {
        this.x = x;
    }
    public T getX() {
        return x;
    }
    public void setX(T x) {
        this.x = x;
    }
}
public class GenericRestrict {
    public static void main(String[] args) {
        CollectionGenFoo<ArrayList> listFoo = null;
        listFoo = new CollectionGenFoo<ArrayList>(new ArrayList());
        CollectionGenFoo<? extends Collection> listFoo1 = null;
        listFoo1=new CollectionGenFoo<ArrayList>(new ArrayList());
        System.out.println("實(shí)例化成功!");
    }
}

output:
實(shí)例化成功!

五 泛型方法:

?
1
2
3
4
5
6
7
8
9
10
11
12
public class GenericFunction {
    public <T> void f(T x) {
        System.out.println(x.getClass().getName());
    }
    public static void main(String[] args) {
        GenericFunction ea = new GenericFunction();
        ea.f(" ");
        ea.f(10);
        ea.f('a');
        ea.f(ea);
    }
}

output:
java.lang.String
java.lang.Integer
java.lang.Character
GenericFunction

-----------------------------
dylan presents.

總結(jié)

以上就是本文關(guān)于java中generic實(shí)例詳解的全部?jī)?nèi)容,希望對(duì)大家有所幫助。如有不足之處,歡迎留言指出。感謝朋友們對(duì)本站的支持!

原文鏈接:http://blog.csdn.net/indexman/article/details/17485361

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 男人天堂色 | 国产精品久久久久久久免费大片 | 第一福利在线导航 | 天堂网站天堂小说 | 久久福利影院 | 人妇小说| 草综合 | 高清不卡日本v在线二区 | 四虎影视在线观看2413 | 国产成人a∨麻豆精品 | 日韩欧美综合在线二区三区 | 久久精品国产亚洲AV麻豆欧美玲 | 成人伊人青草久久综合网破解版 | 亚洲欧美成人综合 | 性色生活片在线观看 | 精品国产线拍大陆久久尤物 | 亚洲激情在线视频 | 欧美一级精品 | 免费人成网址在线观看国内 | 日韩先锋 | 久草在线福利视频在线播放 | 99在线观看视频免费精品9 | 午夜AV国产欧美亚洲高清在线 | 国产精品久久久久久久久免费 | 欧美成黑人性猛交xxoo | 涩涩漫画免费 | 久久se视频精品视频在线 | 向日葵视频app下载18岁以下勿看 | 涩情主播在线翻车 | 韩国最新理论片奇忧影院 | 日本动漫黄网站在线观看 | 日韩欧美亚洲每日更新网 | 99热这里只有精品久久免费 | 精品亚洲欧美中文字幕在线看 | 97综合久久 | 人生路不在线观看完整版 | 四虎影院永久在线 | 人成午夜免费大片在线观看 | 亚洲va欧美va国产va天堂影 | 嫩模被黑人粗大挺进 | 免费国产网站 |