<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    無線&移動互聯網技術研發

    換位思考·····
    posts - 19, comments - 53, trackbacks - 0, articles - 283
      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

    關于泛型

    Posted on 2009-07-12 12:13 Gavin.lee 閱讀(229) 評論(0)  編輯  收藏 所屬分類: 類的設計

    import ?java.util.ArrayList;
    import ?java.util.List;

    class ?Fan? {
    ????
    private ?String?name;

    ????
    public ? void ?setName(String?name)? {
    ????????
    this .name? = ?name;
    ????}


    ????
    public ?String?getName()? {
    ????????
    return ?name;
    ????}

    }


    public ? class ?FanTest? {
    ????
    public ? static ? void ?main(String[]?args)? {
    ????????
    // ?/用泛型的效果--list的get方法取出來的對象不需要強制轉換
    ????????Fan?fan1? = ? new ?Fan();
    ????????fan1.setName(
    " fanTest1 " );
    ????????Fan?fan2?
    = ? new ?Fan();
    ????????fan2.setName(
    " fanTest2 " );

    ????????List
    < Fan > ?list? = ? new ?ArrayList();
    ????????list.add(fan1);
    ????????list.add(fan2);

    ????????System.out.println(list.get(
    0 ).getName());
    ????????System.out.println(list.get(
    1 ).getName());

    ????????
    // ?/不用泛型的效果--list的get方法取出來的對象需要強制轉換
    ????????List?no_list? = ? new ?ArrayList();
    ????????no_list.add(fan1);
    ????????no_list.add(fan2);

    ????????System.out.println(((Fan)?list.get(
    0 )).getName());
    ????????System.out.println(((Fan)?list.get(
    1 )).getName());

    ????}

    }

    首先給一個我在CSDN里查到的我們常用的例子,這個基本上天天都會用,但是從來沒仔細的考慮過中間的含義,慚愧。

    規則和限制
      1、泛型的類型參數只能是類類型(包括自定義類),不能是簡單類型。
      2、同一種泛型可以對應多個版本(因為參數類型是不確定的),不同版本的泛型類實例是不兼容的。
      3、泛型的類型參數可以有多個。
      4、泛型的參數類型可以使用extends語句,例如<T extends superclass>。習慣上稱為“有界類型”。
      5、泛型的參數類型還可以是通配符類型。例如Class<?> classType = Class.forName(java.lang.String);


    package ?com.Gavin.fanxing;

    public ? class ?GenDemo? {
    ????
    public ? static ? void ?main(String[]?args)? {
    ????????
    // ?定義泛型類Gen的一個Integer版本
    ????????Gen < Integer > ?intOb? = ? new ?Gen < Integer > ( 88 );
    ????????intOb.showTyep();
    ????????
    int ?i? = ?intOb.getOb();
    ????????System.out.println(
    " value=? " ? + ?i);
    ????????System.out.println(
    " ---------------------------------- " );
    ????????
    // ?定義泛型類Gen的一個String版本
    ????????Gen < String > ?strOb? = ? new ?Gen < String > ( " Hello?Gen! " );
    ????????strOb.showTyep();
    ????????String?s?
    = ?strOb.getOb();
    ????????System.out.println(
    " value=? " ? + ?s);
    ????}

    }


    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 ?showTyep()? {
    ????????System.out.println(
    " T的實際類型是:? " ? + ?ob.getClass().getName());
    ????}

    }


    package ?com.Gavin.fanxing;

    class ?Gen2? {
    ????
    private ?Object?ob;? // ?定義一個通用類型成員

    ????
    public ?Gen2(Object?ob)? {
    ????????
    this .ob? = ?ob;
    ????}


    ????
    public ?Object?getOb()? {
    ????????
    return ?ob;
    ????}


    ????
    public ? void ?setOb(Object?ob)? {
    ????????
    this .ob? = ?ob;
    ????}


    ????
    public ? void ?showTyep()? {
    ????????System.out.println(
    " T的實際類型是:? " ? + ?ob.getClass().getName());
    ????}

    }


    public ? class ?NoGenDemo? {
    ????
    public ? static ? void ?main(String[]?args)? {
    ????????
    // ?定義類Gen2的一個Integer版本
    ????????Gen2?intOb? = ? new ?Gen2( new ?Integer( 88 ));
    ????????intOb.showTyep();
    ????????
    int ?i? = ?(Integer)?intOb.getOb();
    ????????System.out.println(
    " value=? " ? + ?i);
    ????????System.out.println(
    " ---------------------------------- " );
    ????????
    // ?定義類Gen2的一個String版本
    ????????Gen2?strOb? = ? new ?Gen2( " Hello?Gen! " );
    ????????strOb.showTyep();
    ????????String?s?
    = ?(String)?strOb.getOb();
    ????????System.out.println(
    " value=? " ? + ?s);
    ????}

    }


    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 日韩激情无码免费毛片| 亚洲AV综合色一区二区三区| 亚洲国产成人超福利久久精品| 69av免费观看| 麻豆亚洲AV成人无码久久精品| 久久精品国产精品亚洲| 亚洲黄色免费在线观看| 国产精品亚洲二区在线| 亚洲av网址在线观看| 成年女性特黄午夜视频免费看| 国产一区二区三区免费观在线| 77777午夜亚洲| 亚洲中久无码永久在线观看同| 免费v片在线观看视频网站| 美美女高清毛片视频黄的一免费| 亚洲a在线视频视频| 亚洲av高清在线观看一区二区| 最近免费最新高清中文字幕韩国 | 亚洲国产精品无码中文lv| 亚洲精品乱码久久久久久自慰| 最近2019中文字幕免费看最新| 亚洲线精品一区二区三区影音先锋| 日本免费xxxx色视频| 国产精品99爱免费视频| 亚洲一区二区三区成人网站| 亚洲成AV人片一区二区| 免费少妇a级毛片| 成年女人毛片免费播放视频m| 久久久久久久久久国产精品免费 | 在线a亚洲v天堂网2019无码| 蜜臀91精品国产免费观看| 久久免费国产视频| 国产高潮久久免费观看| 老司机亚洲精品影院在线观看| 亚洲国产日韩在线成人蜜芽| 久久精品视频亚洲| 激情综合色五月丁香六月亚洲| 国产男女猛烈无遮档免费视频网站| 午夜性色一区二区三区免费不卡视频| a级精品九九九大片免费看| 四虎精品成人免费视频|