列舉是jdk1.5版本新增的特性(泛型、for-each等如今被廣泛應用的特性也是由jdk1.5時所新增的),另外到了jdk1.6後switch語句支援列舉型別。
列舉的好處以及與常量類的區別:
1)列舉型可以直接與資料庫打交道,我通常使用varchar型別儲存,對應的是列舉的常量名。(資料庫中好像也有列舉型別,不過也沒用過)
2) switch語句支援列舉型,當switch使用int、string型別時,由於值的不穩定性往往會有越界的現象,對於這個的處理往往只能通過if條件篩選以及default模組來處理。而使用列舉型後,在編譯期間限定型別,不允許發生越界的情況
3) 當你使用常量類時,往往得通過equals去判斷兩者是否相等,使用列舉的話由於常量值位址唯一,可以用==直接對比,效能會有提高
4) 常量類編譯時,是直接把常量的值編譯到類的二進位制**裡,常量的值在公升級中變化後,需要重新編譯引用常量的類,因為裡面存的是舊值。列舉類編譯時,沒有把常量值編譯到**裡,即使常量的值發生變化,也不會影響引用常量的類。
5)列舉類編譯後預設為final class,不允許繼承可防止被子類修改。常量類可被繼承修改、增加欄位等,容易導致父類的不相容。
1.來個最簡單的直接上**吧,直接建立enum類:
package com.jk.common;
public enum zuulfiltertypeenum
public string gettype()
}
取得時候我們怎麼取呢?非常簡單的,直接類名點就可以啦
zuulfiltertypeenum.pre.gettype()
2.再舉例乙個integer型別的:
package com.jk.common;
public enum zuulfilterorderenum
public integer getorder()
}
取得時候:
zuulfilterorderenum.one.getorder()
是不是很簡單呢? Java列舉中巢狀列舉用例
最近專案中需要在列舉類中定義列舉常量的子列舉,翻了一下程式設計思想,順手寫了乙個列舉中巢狀列舉的小demo,供各位碼友參考。public enum testenum public string getcode public string getdescription enum high implem...
java開發中的列舉類
定義乙個列舉類public enum seasonenum列舉類常用方法int compareto e o 該方法用於與指定列舉物件比較順序 string name 返回列舉例項的名稱 int ordinal 返回列舉值在列舉中的索引值 string tostring 返回列舉常量的名稱 定義乙個帶...
Java中的列舉 EnumMap與EnumSet
public enum databasetype 某類中定義的獲取資料庫url的方法以及enummap的宣告。private enummapurls new enummap databasetype.class public databaseinfo 根據不同的資料庫型別,返回對應的url para...