日本免费精品_最新日韩一区_亚洲视频一区在线_a在线视频观看_天天射夜夜骑_粉嫩av一区二区三区_欧美中日韩免费视频_综合图区欧美_国内精品美女在线观看_午夜精品久久久久久久男人的天堂

首頁 > 編程 > Java > 正文

基于java中泛型的總結(jié)分析

2019-11-26 16:08:30
字體:
供稿:網(wǎng)友

要我直接說出泛型是個what我還真講不出來,這里先由一道問題引入:

  定義一個坐標點類,要求能保存各種類型的數(shù)據(jù),如:整形,浮點型,和字符串類型

既然變量類型起先不確定,那么很容易想到就是用所有類型的父類,也就是Object類來代替

不廢話了,用代碼來體現(xiàn)

實例1:用Object來實現(xiàn)不確定的數(shù)據(jù)類型輸入

復(fù)制代碼 代碼如下:

//這是定義的坐標點類
class Point {
    private Object x;
    private Object y;

    //用Object來表示不確定的類型
    public Point(Object x, Object y) {
        this.setX(x);
        this.setY(y);
    }
    public void setX(Object x) {
        this.x = x;
    }
    public Object getX() {
        return x;
    }
    public void setY(Object y) {
        this.y = y;
    }
    public Object getY() {
        return y;
    }

}

//測試類
public class Demo {
    public static void main(String[] args) {
        System.out.println("用浮點數(shù)表示坐標: ");
        Point p = new Point(12.23,23.21);
        //這里把Object類轉(zhuǎn)為Double類,然后自動拆箱,下面兩種一樣
        System.out.println("X的坐標 " + (Double)p.getX());
        System.out.println("Y的坐標 " + (Double)p.getY());
        System.out.println();

        System.out.println("用整數(shù)表示坐標: ");
        Point p2 = new Point(12, 23);
        System.out.println("X的坐標 " + (Integer)p2.getX());
        System.out.println("Y的坐標 " + (Integer)p2.getY());
        System.out.println();

        System.out.println("用字符串表示坐標: ");
        Point p3 = new Point("北緯29度", "東經(jīng)113度");
        System.out.println("X的坐標 " + (String)p3.getX());
        System.out.println("Y的坐標 " + (String)p3.getY());
    }
}

這樣就可以代入不同類型數(shù)據(jù)了,但你別忘了,此時的數(shù)據(jù)還是Object型,也就是所有類型的父類

你必須清醒的明白自己傳入的是什么類型,然后將其做向下轉(zhuǎn)型處理才能使用

雖然這樣做滿足了需求,不過卻隱含了一個不安全因素,為什么說是隱含呢?

比如我們用new Point(12.23,"北緯29度")來構(gòu)造一個Point對象

然后都用(Double)將其向下轉(zhuǎn)型,會產(chǎn)生什么結(jié)果?

沒錯,編譯會通過,但是一旦運行則會發(fā)生類型轉(zhuǎn)換異常

要避免類轉(zhuǎn)換異常也很簡單,把Object聲明換成固定類型聲明(如:String x,String y)即可,這樣編譯時就會報錯

然后你就可以尋找出錯的地方進行修改

不過如此一來,我們就滿足不了需求了

為了達到不存在安全隱患和代入各種數(shù)據(jù)類型的目的,那些牛人們在JDK1.5當中引入了泛型這一概念

我們來看看如何用泛型改寫上面的代碼

實例2:泛型類

復(fù)制代碼 代碼如下:

class Point<T> {
    //這里用T來表示不確定的類型
    private T x;
    private T y;
    public Point(T x, T y) {
        this.setX(x);
        this.setY(y);
    }
    public T getX() {
        return x;
    }
    public void setX(T x) {
        this.x = x;
    }
    public T getY() {
        return y;
    }
    public void setY(T y) {
        this.y = y;
    }
}

public class Demo {
    public static void main(String[] args) {
        System.out.println("用浮點數(shù)表示坐標: ");
        //用泛型改寫后,使用數(shù)據(jù)無需再做向下轉(zhuǎn)型處理
        Point<Double> p = new Point<Double>(12.23,23.21);
        System.out.println("X的坐標 " + p.getX());
        System.out.println("Y的坐標 " + p.getY());
        System.out.println();

        System.out.println("用整數(shù)表示坐標: ");
        Point<Integer> p2 = new Point<Integer>(12, 23);
        System.out.println("X的坐標 " + p2.getX());
        System.out.println("Y的坐標 " + p2.getY());
        System.out.println();

        System.out.println("用字符串表示坐標: ");
        Point<String> p3 = new Point<String>("北緯29度", "東經(jīng)113度");
        System.out.println("X的坐標 " + p3.getX());
        System.out.println("Y的坐標 " + p3.getY());
    }
}

使用泛型過后,可減少安全隱患的存在

如果此時我們刻意傳入不一樣的數(shù)據(jù)類型:

Point<Double> p = new Point<Double>("北緯29度",12.22);

那么,在編譯時就會報錯

雖然定義了泛型,但如果你在構(gòu)造函數(shù)中并未使用泛型機制的話,那么它便會把數(shù)據(jù)當作Object處理

這樣做的目的主要是為了兼容JDK1.4以前的老代碼,如

Point p = new Point(22.11,23.21);

最終運行結(jié)果是一樣的,但在編譯時卻會提示警告信息

 

實例3:泛型方法

由上面的例子可以看到,一旦在構(gòu)造方法中明確對象類型,那么整個類中就將使用同一種類型

最典型的例子是運用在集合框架里面,如:ArrayList<Integer> al = new ArrayList<Integer>();

此時,al中操作的所有對象類型便都是Integer了

可是,有時候我們并不希望固定死操作的對象,而是希望更夠更加靈活的使用泛型技術(shù)

這個時候就可以嘗試泛型方法

復(fù)制代碼 代碼如下:

//類名后面不再定義泛型
class Print {
    //在方法中定義泛型
    public <T> void print(T t) {
        System.out.println(t);
    }

    public <E> void show(E e) {
        System.out.println(e);
    }
}

public class Demo {
    public static void main(String[] args) {
        Print p = new Print();
        p.print(12);
        p.print("hello");
        p.show(new Integer(33));
        p.show(23);
    }
}

其實這樣一來,與在方法中使用Object對象已經(jīng)沒有什么太大區(qū)別了

何況,JDK1.5之后加入了自動拆裝箱功能,省去了需要向下轉(zhuǎn)型的麻煩

 

實例4:泛型接口

復(fù)制代碼 代碼如下:

//定義一個泛型接口
interface Inter<T>
{
    public void print(T t);
}

//實現(xiàn)方式一:
class InterDemo1 implements Inter<String> {
    public void print(String t) {
        System.out.println("print: " + t);
    }
}

//實現(xiàn)方式二:
class InterDemo2<T> implements Inter<T> {
    public void print(T t) {
        System.out.println("print: " + t);
    }
}

class Demo {
    public static void main(String[] args) {
        InterDemo1 id1 = new InterDemo1();
        id1.print("hello");
        InterDemo2<Integer> id2 = new InterDemo2<Integer>();
        id2.print(new Integer(23));
    }
}

實現(xiàn)泛型接口的方式有兩種,一種是在實現(xiàn)的時候指定泛型類型

另一種是依然使用泛型,在構(gòu)造的時候確定泛型類型

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
91精品国产自产在线丝袜啪| 欧美中文字幕在线视频| 精品亚洲永久免费| 日本a口亚洲| 黄色片免费看| 日韩欧美国产成人精品免费| 欧美三级日本三级少妇99| 精品一二线国产| 成人禁用看黄a在线| 日韩精品在线视频| 日韩 欧美 亚洲| 欧美色欧美亚洲高清在线视频| 欧美亚洲国产日韩| 亚洲福利在线视频| 色综合影院在线| 日韩精品视频中文字幕| 日韩中文欧美在线| 国产一卡2卡3卡四卡网站| 国产色在线 com| 国产一级免费| 日韩欧美国产高清| 国产欧美日韩在线视频| 久久麻豆视频| 九一久久久久久| 99久久精品国产亚洲| 日韩视频在线免费看| 92久久精品| 国产亚洲福利| 欧美中文字幕在线观看视频| 天堂在线www天堂中文在线| av手机天堂| 精品久久久网| 欧美一级在线观看| 欧洲精品二区| 亚洲一区在线观看视频| a级在线免费观看| 国产91大片| 日韩色在线观看| 国产成人综合av| 99视频精品全国免费| 欧美久久在线| 国产一区不卡在线| 中文欧美日韩| 成人久久在线| 精品久久久三级| 欧美日韩国产页| 日韩美女视频一区二区在线观看| 中文av字幕一区| 日韩视频精品在线观看| 91精品国产综合久久香蕉的特点| 亚洲综合在线电影| 精品中文字幕在线播放| 亚洲一区视频在线观看视频| 精品国产欧美日韩| 欧美日韩综合高清一区二区| 精品在线一区二区| 天堂在线www天堂中文在线| 欧美一卡2卡3卡4卡| 欧美日韩综合在线| 欧美黄页在线免费观看| 中文字幕在线观看欧美| 国产不卡的av| 九九九精品视频| 国产日韩综合| 精品在线网站观看| 九九九精品视频| 日韩欧美国产不卡| 精品网站999| 精品国产免费视频| 在线视频色在线| 粉嫩喷白浆久久| 国产一区成人| 久久久综合精品| 日韩中文字幕二区| 欧美日韩在线观看成人| 亚洲 欧美 日韩系列| 国产在成人精品线拍偷自揄拍| 亚洲高清免费一级二级三级| 欧美高清一级片在线| 91精品国产入口| 日韩在线精品视频| 69堂精品视频在线播放| 日韩高清在线一区二区| 国产在成人精品线拍偷自揄拍| 国产午夜精品一区二区三区视频| 中文字幕久久精品| 久久精品国产91精品亚洲| 国产区日韩欧美| 中文在线视频| 精品对白一区国产伦| 色猫猫国产区一区二在线视频| 91精品国产综合久久香蕉最新版| 中文字幕最新精品| www在线视频| 国产午夜精品久久| 中文字幕在线欧美| 91久久久久| 日本视频久久久| 国产一区日韩欧美| 91精品国产91久久久久久久久 | 日韩精品一区二区三区视频播放| 国产亚洲一区字幕| 在线观看国产一级片| 国产h片在线观看| 久久99精品久久久久子伦| 欧美日韩在线观看首页| 日韩中文字幕网| 中文字幕久久精品| 日韩精品三级| 日本精品在线| 在线视频国产三级| 99久久精品国产亚洲| 日韩精品中文字幕第1页| 欧美精品一区二区三区在线播放| 国产免费不卡av| 91精品视频在线| 欧美日韩亚洲综合在线| 国产在线www| 日韩欧美不卡在线| 欧美日韩第一区日日骚| 日韩精品在线看| 亚洲福利一区| 先锋男人资源站| 欧美中日韩在线| 中文欧美字幕免费| 国产欧美综合在线| 欧美日韩高清在线播放| 91精品国产91久久| 欧美 日韩 国产 高清| 成人a在线观看| 欧美一级在线免费| 欧美中文字幕视频| 国产在线观看a| 免费看黄资源大全高清| 国产字幕在线看| 国产中文在线播放| 久久中文精品| 欧美日韩国产三级| 亚洲黄色一区二区| 精品福利二区三区| 精品久久久三级| 人成在线免费视频| 亚洲精华国产欧美| 欧美日韩国产在线看| 91精品国产高清| 亚洲a中文字幕| 国产www.大片在线| 国产成人日日夜夜| 亚洲精品中文字幕乱码三区| 视频一区不卡| 国产99在线|亚洲| 国产欧美日韩不卡免费| 中文字幕在线观看视频www| 亚洲欧美久久久| 日韩在线高清视频| 日韩欧美在线中字| 欧美一级欧美三级在线观看| 国产免费永久在线观看| 国产成人一区二区精品非洲| 亚洲福利精品视频| 日韩中文字幕| 久久精品99久久久久久久久| 欧美va亚洲va日韩∨a综合色| 日韩不卡在线观看| 玖玖在线免费视频| 中文字幕久久av| 欧美色欧美亚洲高清在线视频| 一级片在线免费看| 91精品国产综合久久久久久| 日韩午夜高潮| 91精品国产91久久久久久三级| 欧美日韩精品免费| 最近中文字幕日韩精品| 国产香蕉免费精品视频| 国产日韩在线亚洲字幕中文| 精品乱人伦一区二区三区| 国产69精品久久久久孕妇国产69久久| 精品国产91乱高清在线观看| 国产欧美久久久久久久久| 国产欧美日韩中文字幕| 欧美日韩亚洲系列| 欧美91精品| 免费在线亚洲| 亚洲免费播放| 日韩欧美中文字幕在线播放| 中文字幕亚洲免费| 亚洲图片小说综合| 伊人亚洲视频| 中文在线视频观看| 最新中文在线视频| 在线中文免费视频| 日韩视频在线一区二区三区| 蜜桃久久av| av高清一区| 日韩三级免费观看| 中文字幕精品www乱入免费视频| 日韩三级视频中文字幕| 精品福利二区三区| 欧美日韩视频免费播放| 午夜一区二区视频| 欧美不卡视频| 日韩不卡在线观看| 不卡一区二区三区视频| 日韩在线视频观看正片免费网站| 日韩免费高清一区二区| 欧美99久久| 日韩在线视频免费观看| 国产一级片在线播放| av亚洲免费| 中文字幕日韩欧美| 亚洲欧美99| 麻豆精品视频入口| 中文字幕不卡三区| 日韩视频在线观看一区| 日韩欧美国产不卡| 99这里有精品视频| 亚洲一级影院| 欧洲精品二区| 欧美日韩国产页| 国产福利一区二区在线精品| 亚洲娇小xxxx欧美娇小| 国产三级精品在线观看| 91精品xxx在线观看| 国产日韩精品视频| 日本a口亚洲| 国产无套粉嫩白浆在线2022年| 中文精品在线| 国产一级免费在线观看| 91精品视频播放| 日韩不卡一二三区| 最近中文av字幕在线中文 | 一区在线免费| 日韩免费高清一区二区| 亚洲高清中文字幕| 精品久久电影| 国产91久久久久| 日韩视频在线免费播放| 亚洲第一页中文字幕| 中文字幕国产视频| 视频一区二区精品的福利| 91麻豆精品在线| 亚洲成av人片| 亚洲.国产.中文慕字在线| 日韩一级网站| 亚洲一区在线观看免费| 久久久久久久久99精品| 精品国产91乱高清在线观看| 日韩国产专区| 日韩三级高清在线| 日韩精品视频在线播放| 欧美黄页在线免费观看| 欧美日韩中文字幕视频| 国产视频aaa| 国产高清一级片| 国产欧美三级| 91精品婷婷国产综合久久竹菊| 午夜伊人狠狠久久| 国产欧美日韩成人| xxxxx性| 日韩国产一区久久| 亚洲国产综合久久| 中文av字幕一区| 久久韩国免费视频| 日韩在线视频一区二区三区| 欧美日韩精品在线视频| 伊人亚洲视频| 国产欧美日韩在线视频| 日韩亚洲欧美中文字幕| 91精品日本| 日韩亚洲不卡在线| 亚洲最大黄色| 亚洲.国产.中文慕字在线| 99这里有精品视频| 日韩欧美久久久| 日韩高清在线一区二区| 亚洲女人天堂色在线7777| 国产欧美日韩在线播放| 欧美片网站免费| 国产网站av| 一区二区不卡在线| 国产欧美日产一区| 日本中文字幕在线观看| 欧美日韩精品是欧美日韩精品| √天堂资源中文www| 91精品国产入口| 久久网站免费观看| 国产一区精品在线| 久久91精品久久久久久秒播| 一级日本免费的| 91精品视频国产| 色偷偷一区二区三区| 日韩精品三级| 在线黄色国产电影| 黄色视屏免费在线观看| 欧美日韩国产免费观看| 中文字幕精品视频| 日韩在线 中文字幕| 欧美高清一级片在线| 91精品国产自产在线丝袜啪| 人妻一区二区三区免费| 欧美中文字幕精品| 91精品啪在线观看国产60岁| 久久福利视频一区二区| 久久视频一区| 91精品高清| 日韩福利视频导航| 在线精品视频免费播放| 日韩欧美在线中字| 最近中文字幕在线中文视频| 97caopor国产在线视频| 欧美日韩国产免费观看| 国产中文伊人| 视频一区视频二区中文| 亚洲欧洲一区二区天堂久久| 欧美二三四区| 97视频在线| 日韩三区免费| 亚洲小说春色综合另类电影| 久久人人88| 精品成a人在线观看| 一二三区精品视频| 99精品在线播放| 国产永久在线观看| 精品国产1区二区| 一区二区三区中文字幕在线观看| 中文字幕欧美日韩在线| 日韩精品在线看| 国产成人综合精品| 成人ww免费完整版在线观看| 日韩精品一页| 免费国产成人看片在线| 91蜜桃在线视频| 精品一二三四区| 黄色在线资源| 婷婷久久综合九色国产成人| 久久久91精品| 香蕉人人精品| 国产免费久久久| 日本va欧美va精品发布| 国产不卡视频在线| 中文在线视频观看| 一区二区三区中文字幕在线观看| 91麻豆免费视频网站| 亚洲大胆人体av| 黄色在线播放网站| 深夜福利一区二区| 国产亚洲欧美色| 欧美日韩激情在线一区二区三区 | 欧美一级免费在线观看| 日韩不卡一区二区| 国产视频二区| 亚洲综合中文字幕在线| 高清不卡一区二区| 精品精品久久| 在线精品观看| 欧美区高清在线| 欧美日韩国产专区| 日韩精品中文在线观看| 欧美日韩亚洲国内综合网俺| 欧美不卡视频一区发布| 欧美日韩亚洲不卡| 中文字幕在线视频久| 日韩欧美亚洲国产| 91麻豆免费视频网站| 欧美日韩日本视频| 黄色一区二区在线| 欧美日韩性视频| 91精品国产综合久久香蕉的特点| 日韩欧美在线影院| 日韩欧美高清在线| 欧美综合精品| 日韩欧美色综合网站| 91精品国产自产在线观看永久∴| 99久热re在线精彩视频| 亚洲视频 中文字幕| 精品日韩av| 亚洲欧洲日韩精品在线| 中文字幕久精品免费视频| 中文字幕亚洲在| 国产欧美日韩91| 中文字幕高清在线播放| 日韩欧美在线网站| 亚洲一区视频在线观看视频| 91精品国产综合久久香蕉最新版| 91精品国产91久久| 欧美日韩在线观看一区| www在线播放| 精品1区2区3区| 日本一欧美一欧美一亚洲视频| 亚洲视频一二三四| 亚洲福利在线看| 日韩在线观看a| 久本草在线中文字幕亚洲欧美| 亚欧成人精品| 国产成人一二三区| 中文精品在线| 欧美日韩国产高清视频| 日韩在线a电影| 欧美日韩在线国产| 在线视频国内一区二区|