軟件是對質量的不懈追求

          JAVA泛型類(轉)

          泛型是JDK 5.0后出現新概念,泛型的本質是參數化類型,也就是說所操作的數據類型被指定為一個參數。這種參數類型可以用在類、接口和方法的創建中,分別稱為泛型類、泛型接口、泛型方法。

          泛型類引入的好處不僅在于減少代碼量,還在于一提供了編譯時期數據類型的檢查功能,可以提前預知錯誤的發生,增加代碼安全性,二是減少了強制類型轉換。下面定義一個泛型類

           Example GenericFX.java

           package org;

           public class GenericFX<E>

          {

               private E fx;

              

               public void setFX(E fx)

              {

                   this.fx = fx;

              }

           

               public E getFX()

               {

                   return fx;

               }

          }

          在此例中,GenericFX類就是要定義的泛型類,類型變量E是泛型類的類型參數,我們可以使用GenericFX<E>這樣的類型名來聲明一個泛型類。如

          GenericFX<E>  fx  = new GenericFX<E>(),其中E就是具體的類型, 下面看一個應用泛型類的例子.

           Example GenericFXDemo.java

           package org;

           public class GenericFXDemo

          {

               public void main(String[] args)

               {

                   GenericFX<Integer>  f1 = new GenericFX<Integer>(); 

                   GenericFX<Boolean>  f2 = new GenericFX<Boolean>();      

                  

                   f1.setFX(new Integer(10));

                   System.out.println(f1.getFX);//

                 

                   f2.setFX(new Boolean(true));

                   System.out.println(f2.getFX);//

               }

          }

          可以看到,f1,f2都是同一泛型類的對象引用,在取得不同參數類型對象時,已不需要實行類型轉換.

          如果像這樣修改一下代碼,

          f1.setFX(new Integer(10));

          Boolean  b = f1.getFX();

          System.out.println(b);   這里編譯就會報錯,告訴你這不安全.

          泛型類可以定義多個類型參數,像GenericFX<E,F>就要兩個類型參數。但是,無論有多少個類型參數,泛型仍然只需要一個類。如上GenericFX<Integer> GenericFX<Boolean>都屬于同一個泛型類GenericFX,f1,f2都只是該泛型類的一個應用,當然單一的GenericFX類是不能稱為泛型類的,必須要有<>和類型參數才可以,而像fx只是泛型類的成員變量。

          posted on 2009-07-17 14:49 BlakeSu 閱讀(203) 評論(0)  編輯  收藏


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


          網站導航:
          博客園   IT新聞   Chat2DB   C++博客   博問  
           
          主站蜘蛛池模板: 鄂托克前旗| 内江市| 江油市| 怀化市| 博湖县| 吉安县| 八宿县| 读书| 兴安盟| 莱芜市| 光泽县| 南召县| 新津县| 临高县| 南陵县| 嘉鱼县| 福州市| 岢岚县| 馆陶县| 库车县| 尼木县| 通山县| 满城县| 佛冈县| 公安县| 淅川县| 郯城县| 黎平县| 克山县| 股票| 唐河县| 类乌齐县| 文安县| 察隅县| 澜沧| 化德县| 廊坊市| 乌兰浩特市| 楚雄市| 莎车县| 英吉沙县|