Dev@Free

          zJun's Tech Weblog

          Java5 feature

          摘自: JDK1.5新特性介紹


          1.泛型(Generic)


          Collection < String > ?c? = ? new ?ArrayList();
          c.add(
          new ?Date());

          編譯器會給出一個錯誤:
          add(java.lang.String) in java.util.Collection<java.lang.String> cannot be applied to (java.util.Date)

          2.For-Each循環(huán)
          Before:
          void ?processAll(Collection?c) {
           
          for (Iterator?i = c.iterator();?i.hasNext();)
          {
             MyClass?myObject?
          =
          ?(MyClass)i.next();
             myObject.process();
           }

          }

          Now:
          void ?processAll(Collection < MyClass > ?c) {
           
          for
          ?(MyClass myObject?:c)
             myObject.process();
          }


          3.自動裝包/拆包(Autoboxing/unboxing)
          int ?a? = ? 3 ;
          Collection?c?
          = ? new
          ?ArrayList();
          c.add(a);
          // 自動轉(zhuǎn)換成Integer.

            
          Integer?b?
          = ? new ?Integer( 2
          );
          c.add(b?
          + ? 2 ); //
          這里Integer先自動轉(zhuǎn)換為int進(jìn)行加法?運(yùn)算,然后int再次轉(zhuǎn)換為Integer.

          4.枚舉(Enums)
          // 定義一個枚舉類型。  ?
          public ? enum ?Color {
           Red,
           White,
           Blue
          }

          // 然后可以這樣來使用
          Color?myColor? = ?Color.Red.
          // 枚舉類型還提供了兩個有用的靜態(tài)方法values()和valueOf().?我們可以很方便地使用它們,例如

          for ?(Color?c?:?Color.values())
            System.out.println(c);

          5.可變參數(shù)(Varargs)
          Before:
          util.write(obj1);
          util.write(obj1,obj2);
          util.write(obj1,obj2,obj3);
          Now:
          public ? void ?write(Object?objs)? {
           
          for
          ?(Object?obj:?objs)
            System.out.println(obj);
          }


          6.靜態(tài)導(dǎo)入(Static Imports)
          import ? static ?java.lang.Math. * ;

          r?
          = ?sin(PI? * ? 2 );? //
          無需再寫r?=?Math.sin(Math.PI);

          注意:
          過度使用這個特性也會一定程度上降低代碼地可讀性。

          posted on 2007-08-17 23:27 zJun's帛羅閣 閱讀(883) 評論(0)  編輯  收藏 所屬分類: Java基礎(chǔ)

          導(dǎo)航

          <2007年8月>
          2930311234
          567891011
          12131415161718
          19202122232425
          2627282930311
          2345678

          統(tǒng)計

          常用鏈接

          留言簿(15)

          隨筆分類

          隨筆檔案

          相冊

          收藏夾

          博客

          文檔

          站點

          論壇

          搜索

          積分與排名

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 宁乡县| 民和| 桃园县| 贵州省| 会东县| 东兰县| 西丰县| 黔江区| 高雄市| 河北区| 丰镇市| 北海市| 安康市| 四子王旗| 岳阳市| 武宣县| 郴州市| 巴彦淖尔市| 商河县| 阿巴嘎旗| 江城| 临猗县| 平顺县| 普定县| 东阿县| 长岭县| 金阳县| 抚远县| 贡觉县| 胶南市| 绵阳市| 台南市| 婺源县| 儋州市| 教育| 邮箱| 大安市| 泰和县| 昌乐县| 汶上县| 双流县|