軟件是對(duì)質(zhì)量的不懈追求

          JAVA泛型類(轉(zhuǎn))

          泛型是JDK 5.0后出現(xiàn)新概念,泛型的本質(zhì)是參數(shù)化類型,也就是說(shuō)所操作的數(shù)據(jù)類型被指定為一個(gè)參數(shù)。這種參數(shù)類型可以用在類、接口和方法的創(chuàng)建中,分別稱為泛型類、泛型接口、泛型方法。

          泛型類引入的好處不僅在于減少代碼量,還在于一提供了編譯時(shí)期數(shù)據(jù)類型的檢查功能,可以提前預(yù)知錯(cuò)誤的發(fā)生,增加代碼安全性,二是減少了強(qiáng)制類型轉(zhuǎn)換。下面定義一個(gè)泛型類

           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是泛型類的類型參數(shù),我們可以使用GenericFX<E>這樣的類型名來(lái)聲明一個(gè)泛型類。如

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

           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都是同一泛型類的對(duì)象引用,在取得不同參數(shù)類型對(duì)象時(shí),已不需要實(shí)行類型轉(zhuǎn)換.

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

          f1.setFX(new Integer(10));

          Boolean  b = f1.getFX();

          System.out.println(b);   這里編譯就會(huì)報(bào)錯(cuò),告訴你這不安全.

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

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


          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 古交市| 阿克陶县| 黔西| 吉木乃县| 壤塘县| 綦江县| 桦川县| 敦煌市| 盐城市| 中牟县| 天气| 唐海县| 西乌珠穆沁旗| 康平县| 丰原市| 镇沅| 朝阳区| 道真| 洛浦县| 敦煌市| 郯城县| 青阳县| 洪洞县| 边坝县| 即墨市| 鄂伦春自治旗| 武安市| 徐闻县| 侯马市| 安乡县| 滦平县| 兴业县| 津南区| 苏尼特左旗| 福海县| 金秀| 平谷区| 韩城市| 武陟县| 彭泽县| 开化县|