<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 閱讀(237) 評論(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);
    ????}

    }


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


    網站導航:
     
    主站蜘蛛池模板: 一级毛片免费播放男男| 日本亚洲精品色婷婷在线影院 | 亚洲成人免费网站| 中国毛片免费观看| 亚洲人成影院在线无码按摩店| 妞干网免费视频观看| 亚洲人成高清在线播放| 希望影院高清免费观看视频| 亚洲黄色片在线观看| 亚洲免费二区三区| 在线亚洲精品福利网址导航| 羞羞漫画小舞被黄漫免费| 免费在线看黄的网站| 亚洲视频在线播放| 免费v片在线观看视频网站| 国产精品亚洲片夜色在线| 成人免费视频网址| 午夜亚洲乱码伦小说区69堂| 国产国拍亚洲精品福利 | 蜜桃成人无码区免费视频网站| 亚洲国产精品无码久久久蜜芽| 毛片免费在线观看| 亚洲美女自拍视频| 成全高清视频免费观看| 高潮内射免费看片| 亚洲VA中文字幕不卡无码| 久久午夜夜伦鲁鲁片免费无码影视| 亚洲AV男人的天堂在线观看| 国产小视频在线观看免费| 天堂在线免费观看| 免费在线观看中文字幕| 亚洲AV永久无码精品一福利| 亚洲高清无码专区视频| 国产高清不卡免费视频| 亚洲依依成人亚洲社区| 久久精品国产精品亚洲| 99精品视频在线观看免费播放| 亚洲色欲色欱wwW在线| 久久久久亚洲精品男人的天堂| 精品熟女少妇av免费久久| 亚洲va在线va天堂va不卡下载|