Dev@Free

          zJun's Tech Weblog

          Java5 feature

          摘自: JDK1.5新特性介紹


          1.泛型(Generic)


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

          編譯器會(huì)給出一個(gè)錯(cuò)誤:
          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.自動(dòng)裝包/拆包(Autoboxing/unboxing)
          int ?a? = ? 3 ;
          Collection?c?
          = ? new
          ?ArrayList();
          c.add(a);
          // 自動(dòng)轉(zhuǎn)換成Integer.

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

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

          // 然后可以這樣來(lái)使用
          Color?myColor? = ?Color.Red.
          // 枚舉類型還提供了兩個(gè)有用的靜態(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 );? //
          無(wú)需再寫(xiě)r?=?Math.sin(Math.PI);

          注意:
          過(guò)度使用這個(gè)特性也會(huì)一定程度上降低代碼地可讀性。

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

          導(dǎo)航

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

          統(tǒng)計(jì)

          常用鏈接

          留言簿(15)

          隨筆分類

          隨筆檔案

          相冊(cè)

          收藏夾

          博客

          文檔

          站點(diǎn)

          論壇

          搜索

          積分與排名

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          主站蜘蛛池模板: 镇沅| 绩溪县| 万年县| 定安县| 广东省| 神农架林区| 那曲县| 攀枝花市| 嘉义市| 余庆县| 团风县| 漳州市| 玉门市| 炉霍县| 阜新市| 凭祥市| 五河县| 措勤县| 青岛市| 富顺县| 瓮安县| 平凉市| 宜兰市| 孙吴县| 芜湖县| 明水县| 黎城县| 柏乡县| 方山县| 丰宁| 建水县| 潢川县| 嘉兴市| 博乐市| 泸州市| 齐齐哈尔市| 永济市| 习水县| 阿拉善盟| 陕西省| 西畴县|