<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    DANCE WITH JAVA

    開發(fā)出高質量的系統(tǒng)

    常用鏈接

    統(tǒng)計

    積分與排名

    好友之家

    最新評論

    JDK1.5 泛型之外的其它新特性

    JDK1.5泛型之外的其它新特性,泛型相關看這里
      
    For-Each循環(huán)
    For-Each循環(huán)得加入簡化了集合的遍歷。假設我們要遍歷一個集合對其中的元素進行一些處理。典型的代碼為:

    1 class  Bean {
    2   public   void  run() {
    3   // .
    4  }

    5 }

    6

     

     1 ArrayList list  =   new  ArrayList();
     2 list.add( new  Bean());
     3 list.add( new  Bean());
     4 list.add( new  Bean());
     5
     6 for (Iterator ie = list.iterator(); list.hasNext();) {
     7  Bean bean  =  (Bean)ie.next();
     8  bean.run();
     9  
    10 }

    11
    12

    使用For-Each循環(huán),配合泛型,我們可以把代碼改寫成,

     1 ArrayList < Bean >  list  =   new  ArrayList < Bean > ();
     2 list.add( new  Bean());
     3 list.add( new  Bean());
     4 list.add( new  Bean());
     5
     6 for (Bean bean : list ) {
     7  bean.run();
     8 }

     9
    10

    這段代碼要比上面清晰些,少寫些,并且避免了強制類型轉換。
      
      
    2.枚舉(Enums)
    JDK1.5加入了一個全新類型的“類”-枚舉類型。為此JDK1.5引入了一個新關鍵字enmu.
    我們可以這樣來定義一個枚舉類型。
    public enum Color{
        Red,
        White,
        Blue
    }
    然后可以這樣來使用Color myColor = Color.Red.
    枚舉類型還提供了兩個有用的靜態(tài)方法values()和valueOf(). 我們可以很方便地使用它們,例如
    for(Color c : Color.values())
       System.out.println(c);  

    6.靜態(tài)導入(Static Imports)
    要使用用靜態(tài)成員(方法和變量)我們必須給出提供這個方法的類。使用靜態(tài)導入可以使被導入類的所有靜
    態(tài)變量和靜態(tài)方法在當前類直接可見,使用這些靜態(tài)成員無需再給出他們的類名。
    import static java.lang.Math.*;
    r = round(); //無需再寫r = Math.round();
    不過,過度使用這個特性也會一定程度上降低代碼地可讀性

    5.可變參數(shù)(Varargs)
    可變參數(shù)使程序員可以聲明一個接受可變數(shù)目參數(shù)的方法。注意,可變參數(shù)必須是函數(shù)聲明中的最后一個參數(shù)。
    假設我們要寫一個簡單的方法打印一些對象

    例如:我們要實現(xiàn)一個函數(shù),把所有參數(shù)中最大的打印出來,如果沒有參數(shù)就打印一句話。
    需求:
    prtMax();
    prtMax(1);
    prtMax(1,2);
    prtMax(1,2,3);
    ......
    prtMax(1,2,3...n);
    以前的實現(xiàn)方式:

     1 prtMax() {
     2  System.out.println( " no parameter " );
     3 }

     4 prtMax( int  a) {
     5  System.out.println(a);
     6 }

     7 prtMax( int  a, int  b) {
     8   if (a > b) {
     9   System.out.println(a);
    10  }
    else {
    11   System.out.println(b);
    12  }

    13 }

    14
    15

    我們發(fā)先寫多少個都不夠,子子孫孫無窮盡也
    改造一下,在上邊的基礎上,再加上
    prtMax(int a,int b,int[] c){
     //....比較最大的輸出
     這樣能實現(xiàn)了,但是要求使用的人必須要在輸入前把數(shù)字做成int[]
    }
    看看現(xiàn)在使用新特性怎么實現(xiàn):

     1 prtMax( int   nums) {
     2   if (nums.length == 0 ) {
     3   System.out.println( " no parameter " );
     4  }
    else {
     5    int  maxNum  =   0 ;
     6    for ( int  num :nums) {
     7     if (num  > maxNum) {
     8     maxNum  =  num;
     9    }

    10   }

    11   System.out.println(maxNum);
    12  }

    13 }

    14

    好了,無論多少個參數(shù)都可以了
    prtMax();
    prtMax(1);
    prtMax(1,2);
    prtMax(1,2,3,4,5,6,7,8, ....,n);

    另外JDK1.5中可以像c中這樣用了
    String str="dd";
    int k =2;
    System.out.printf("str=%s k=%d",str,k);

    posted on 2006-11-09 16:21 dreamstone 閱讀(1494) 評論(0)  編輯  收藏 所屬分類: jdk相關

    主站蜘蛛池模板: 亚洲www77777| 无码视频免费一区二三区| 亚洲av乱码中文一区二区三区| 久久精品亚洲综合| 免费在线观看污网站| 成年人免费观看视频网站| 99xxoo视频在线永久免费观看| 四虎影视永久在线精品免费| 亚洲乱妇老熟女爽到高潮的片| 亚洲精品一区二区三区四区乱码| 国产亚洲精品无码专区| 又黄又爽一线毛片免费观看 | 国产gv天堂亚洲国产gv刚刚碰| 在线看片无码永久免费aⅴ| 99精品国产免费久久久久久下载| 久久久免费的精品| 中文字幕在线免费视频| 2022国内精品免费福利视频| 色多多A级毛片免费看| 无码天堂亚洲国产AV| 亚洲国产精品久久久久秋霞小| 亚洲一级特黄特黄的大片| 亚洲精品无码久久毛片波多野吉衣| 亚洲日韩v无码中文字幕| AV在线亚洲男人的天堂| 亚洲国产综合人成综合网站| www国产亚洲精品久久久日本| 国产在线ts人妖免费视频| 无码国模国产在线观看免费| 日本v片免费一区二区三区| 日韩免费视频播播| 四虎永久免费地址在线观看| 日本一区免费电影| 亚洲阿v天堂在线2017免费| 亚洲国产成人久久综合碰| 亚洲色偷偷狠狠综合网| 亚洲熟妇无码AV在线播放| 亚洲av综合色区| 亚洲视频精品在线观看| 亚洲人色大成年网站在线观看| 国产精品亚洲精品青青青|