扒开腿挺进岳湿润的花苞视频|将军边走边挺进她H树林|挺进朋友人妻张婉莹身体|岳脱得精光让我挺进去视频|第一次挺进莹莹的身体里视频|脱岳裙子从后面挺进去视频

新疆軟件開(kāi)發(fā)

本站首頁(yè) 軟件開(kāi)發(fā) 成功案例 公司新聞 公司簡(jiǎn)介 客服中心 軟件技術(shù) 網(wǎng)站建設(shè)
  您現(xiàn)在的位置: 新疆二域軟件開(kāi)發(fā)公司 >> Java技術(shù) >> 文章正文

java引入泛型的好處

    泛型是Java SE 1.5的新特性,泛型的本質(zhì)是參數(shù)化類(lèi)型,也就是說(shuō)所操作的數(shù)據(jù)類(lèi)型被指定為一個(gè)參數(shù)。這種參數(shù)類(lèi)型可以用在類(lèi)、接口和方法的創(chuàng)建中,分別稱(chēng)為泛型類(lèi)、泛型接口、泛型方法。    
    在Java SE 1.5之前,沒(méi)有泛型的情況的下,通過(guò)對(duì)類(lèi)型Object的引用來(lái)實(shí)現(xiàn)參數(shù)的“任意化”,“任意化”帶來(lái)的缺點(diǎn)是要做顯式的強(qiáng)制類(lèi)型轉(zhuǎn)換,而這種轉(zhuǎn)換是要求開(kāi)發(fā)者對(duì)實(shí)際參數(shù)類(lèi)型可以預(yù)知的情況下進(jìn)行的。對(duì)于強(qiáng)制類(lèi)型轉(zhuǎn)換錯(cuò)誤的情況,編譯器可能不提示錯(cuò)誤,在運(yùn)行的時(shí)候才出現(xiàn)異常,這是一個(gè)安全隱患。

    Java語(yǔ)言引入泛型的好處是安全簡(jiǎn)單。泛型的好處是在編譯的時(shí)候檢查類(lèi)型安全,并且所有的強(qiáng)制轉(zhuǎn)換都是自動(dòng)和隱式的,提高代碼的重用率。

    泛型在使用中還有一些規(guī)則和限制:
    1、泛型的類(lèi)型參數(shù)只能是類(lèi)類(lèi)型(包括自定義類(lèi)),不能是簡(jiǎn)單類(lèi)型。
    2、同一種泛型可以對(duì)應(yīng)多個(gè)版本(因?yàn)閰?shù)類(lèi)型是不確定的),不同版本的泛型類(lèi)實(shí)例是不兼容的。
    3、泛型的類(lèi)型參數(shù)可以有多個(gè)。
    4、泛型的參數(shù)類(lèi)型可以使用extends語(yǔ)句,例如<T extends superclass>。習(xí)慣上成為“有界類(lèi)型”。
    5、泛型的參數(shù)類(lèi)型還可以是通配符類(lèi)型。例如Class<?> classType = Class.forName(Java.lang.String);
    泛型還有接口、方法等等,內(nèi)容很多,需要花費(fèi)一番功夫才能理解掌握并熟練應(yīng)用。在此給出我曾經(jīng)了解泛型時(shí)候?qū)懗龅膬蓚(gè)例子(根據(jù)看的印象寫(xiě)的),實(shí)現(xiàn)同樣的功能,一個(gè)使用了泛型,一個(gè)沒(méi)有使用,通過(guò)對(duì)比,可以很快學(xué)會(huì)泛型的應(yīng)用,學(xué)會(huì)這個(gè)基本上學(xué)會(huì)了泛型70%的內(nèi)容。

    例子一:使用了泛型

    public 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的實(shí)際類(lèi)型是: " + ob.getClass().getName());
    }
    }

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

    例子二:沒(méi)有使用泛型

    public class Gen2 {
     private Object ob; //定義一個(gè)通用類(lèi)型成員
       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的實(shí)際類(lèi)型是: " + ob.getClass().getName());
    }
    }

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

    運(yùn)行結(jié)果:
    兩個(gè)例子運(yùn)行Demo結(jié)果是相同的,控制臺(tái)輸出結(jié)果如下:
    T的實(shí)際類(lèi)型是:
    Java.lang.Integer
    value= 88
----------------------------------
    T的實(shí)際類(lèi)型是: Java.lang.String
    value= Hello Gen!

    Process finished with exit code 0
    看明白這個(gè),以后基本的泛型應(yīng)用和代碼閱讀就不成問(wèn)題了。

 

作者:leizhimi… | 文章來(lái)源:csai.cn | 更新時(shí)間:2007-10-20 12:00:50

  • 上一篇文章:

  • 下一篇文章:

  • 相關(guān)文章:
    JAVA開(kāi)發(fā)的6個(gè)實(shí)踐的例子
    JAVA中的抽象類(lèi)型的一些概念
    java語(yǔ)言開(kāi)發(fā)程序中的幾個(gè)例子大家看看
    了解java開(kāi)發(fā)語(yǔ)言在軟件開(kāi)發(fā)中的幾個(gè)誤區(qū)
    如何才能使用Java實(shí)現(xiàn)內(nèi)部領(lǐng)域的特定語(yǔ)言
    Java開(kāi)發(fā)學(xué)習(xí)小心使用Date以及Time類(lèi)
    sun最近修補(bǔ)了一部分java的安全補(bǔ)丁
    Java程序員應(yīng)該了解那些開(kāi)源協(xié)議
    java性能優(yōu)化的一些見(jiàn)解
    解析c#語(yǔ)言和java語(yǔ)言最相似的地方
    軟件技術(shù)
    · 開(kāi)發(fā)語(yǔ)言
    · Java技術(shù)
    · .Net技術(shù)
    · 數(shù)據(jù)庫(kù)開(kāi)發(fā)
    最新文章  
    ·j2se 嵌入式腳本抓取引擎
    ·JAVA開(kāi)發(fā)的6個(gè)實(shí)踐的例子
    ·JBuilder7 / Weblogic7開(kāi)發(fā)
    ·JAVA中的抽象類(lèi)型的一些概
    ·java語(yǔ)言開(kāi)發(fā)程序中的幾個(gè)
    ·了解java開(kāi)發(fā)語(yǔ)言在軟件開(kāi)
    ·如何才能使用Java實(shí)現(xiàn)內(nèi)部
    ·Java開(kāi)發(fā)學(xué)習(xí)小心使用Date
    ·Java程序員應(yīng)該了解那些開(kāi)
    ·java性能優(yōu)化的一些見(jiàn)解
    ·介紹JDK5.0一些collection
    ·基礎(chǔ)學(xué)習(xí):java中使用存儲(chǔ)
    ·解析c#語(yǔ)言和java語(yǔ)言最相
    ·Java語(yǔ)言學(xué)習(xí):jAVA中 的多
    ·Java是不是應(yīng)該增加新特性
    關(guān)于我們 | 軟件開(kāi)發(fā) | 下載試用 | 客服中心 | 聯(lián)系我們 | 友情鏈接 | 網(wǎng)站地圖 | 新疆電子地圖 | RSS訂閱
    版權(quán)所有 © 2016 新疆二域軟件開(kāi)發(fā)網(wǎng) m.jdtbank.com All Rights Reserved 新ICP備14003571號(hào)
    新疆軟件開(kāi)發(fā)總機(jī):0991-4842803、4811639.
    客服QQ:596589785 ;地址:新疆烏魯木齊北京中路華聯(lián)大廈A-5C 郵編:830000
     
    铜山县| 康定县| 江口县| 富蕴县| 张掖市| 柘城县| 铁力市| 怀仁县| 临颍县| 浮山县| 乌兰察布市| 射洪县| 荔浦县| 体育| 高尔夫| 光山县| 龙门县| 漾濞| 苏尼特左旗| 沙湾县| 门头沟区| 金乡县| 华池县| 辛集市| 台北市| 藁城市| 固安县| 平定县| 景德镇市| 绥芬河市| 太谷县| 丰顺县| 开鲁县| 青阳县| 沁源县| 鹰潭市| 洛南县| 平湖市| 贡嘎县| 通道| 云浮市|