天天看點

JDK5.0新特性之:枚舉

文/陳剛 2005-11-09 

一、前言

  JDK5.0出來有快一年了吧,泛泛的浏覽過一些資料,不知道是文章寫得生澀,還是我愚笨,總之是沒太明白。反正所做的項目也沒有用到,是以放在了一邊。近來公司平台更新到JBOSS4和JDK5,看來要仔佃看它一看看。上網搜尋了一些資料,花了兩小時閱讀,算明白了一些,好象也不是很難。現将心得和了解結內建文,以便後來者。

  JDK5.0主要有哪些新特性呢?如下清單

泛型

增強的for循環

自動裝箱和自動拆箱

類型安全的枚舉

可變長度參數

靜态引入

中繼資料(注解)

C風格的格式化輸出

  本文先講“類型安全的枚舉”。

二、舊的曆史

  舉個例:有一個如下的“花(flower)”類,它有一個顔色(color)屬性,用int型來表示其顔色。

  這時一般我們會建立一個常量類,來存放顔色常量,如下:

  以後我們用的時候就可以這樣:

  Color類就是一個我們自己來實作的枚舉類,當然它并不是嚴格意義上的枚舉類,而且JDK5.0之前還沒有枚舉。這時會出現一個問題:setColor參數是int型,那麼也許使用者會不小心用一個非法的int值賦進去,這樣就可能産生BUG,如:f.setColor(100);顯示100并非是我們設定中的顔色值。

  在那本有名的java著作<<Effective java>> Joshua Bloch,用了專門的一章(第5章)來讨論這