軟件是對(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 閱讀(206) 評(píng)論(0)  編輯  收藏


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


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 阳谷县| 新安县| 龙井市| 曲松县| 乌拉特中旗| 遵化市| 察雅县| 三明市| 廊坊市| 翼城县| 全州县| 霍邱县| 雷山县| 乐亭县| 汝城县| 澳门| 建昌县| 赣榆县| 崇州市| 正镶白旗| 瓦房店市| 临湘市| 黑水县| 镇康县| 宁南县| 霍山县| 遂平县| 景宁| 南和县| 石城县| 司法| 乌海市| 阿鲁科尔沁旗| 廊坊市| 宜兰市| 庆云县| 尼木县| 遂宁市| 鄄城县| 岢岚县| 平潭县|