Kotlin枚舉類

枚舉類最基本的用法是實現一個類型安全的枚舉(typesafe enum)垢村,什么叫做類型安全的枚舉呢,即每個枚舉都是枚舉類的實例且不提供公共的構造方法岖圈。

enum class Color{
    RED, GREEN, BLUE, WHITE, BLACK
}

枚舉類使用關鍵字enum標記,enum關鍵字在類頭中的class關鍵字前面稿湿。

enum class 類名{
  ...
}

枚舉常量

  • 枚舉常量是指枚舉類下的對象澎现,每個枚舉類包含0到多個枚舉常量仅胞。
  • 枚舉常量使用逗號分隔,每個枚舉常量都是一個對象剑辫。
  • 枚舉類中的每個枚舉常量都是一個對象干旧,枚舉常量之間使用逗號分隔。
  • 枚舉常量也可以被定義在自己的匿名類中
  • 每個枚舉都是枚舉類的實例妹蔽,都可以被初始化椎眯。

根據枚舉值的名稱獲取枚舉實例

EnumClass.valueOf(value:String)

獲取所有枚舉實例

EnumClass.values()

例如:

//定義枚舉類
enum class LogLevel{
    VERBOSE, DEBUG, INFO, WARN, ERROR, ASSERT
}
//測試運行
fun main(args:Array<String>){
    val level:LogLevel = LogLevel.DEBUG
    println(level.name)//DEBUG
    println(level.ordinal)//1

    println(LogLevel.values())//[LLogLevel;@6e8cf4c6
    println(LogLevel.valueOf("ERROR"))//ERROR

    println(LogLevel.ERROR)//ERROR
    println(LogLevel.ERROR.ordinal)//4
    println(LogLevel.ERROR.name)//ERROR
}
  • 每個枚舉常量都擁有屬性,可以獲取它的名稱name以及它在枚舉類中聲明的順序ordinal胳岂。
  • 枚舉類的著構造函數默認是私有的编整,若對枚舉常量設置屬性值,需在主構造函數會中進行聲明乳丰,并且在枚舉常量處進行初始化掌测。

例如:

//定義枚舉類
enum class LogLevel(var type:Int){
    VERBOSE(1),
    DEBUG(2),
    INFO(3),
    WARN(4),
    ERROR(5),
    ASSERT(6)
}
//測試運行
fun main(args:Array<String>){
    val levels:Array<LogLevel> = LogLevel.values()
    for(item in levels){
        println("name:${item.name} ordinal:${item.ordinal} type:${item.type} value:${LogLevel.valueOf(item.name)}")
    }
}
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市产园,隨后出現的幾起案子汞斧,更是在濱河造成了極大的恐慌夜郁,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,858評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件断箫,死亡現場離奇詭異拂酣,居然都是意外死亡,警方通過查閱死者的電腦和手機仲义,發(fā)現死者居然都...
    沈念sama閱讀 93,372評論 3 395
  • 文/潘曉璐 我一進店門婶熬,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人埃撵,你說我怎么就攤上這事赵颅。” “怎么了暂刘?”我有些...
    開封第一講書人閱讀 165,282評論 0 356
  • 文/不壞的土叔 我叫張陵饺谬,是天一觀的道長。 經常有香客問我谣拣,道長募寨,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,842評論 1 295
  • 正文 為了忘掉前任森缠,我火速辦了婚禮拔鹰,結果婚禮上,老公的妹妹穿的比我還像新娘贵涵。我一直安慰自己列肢,他們只是感情好,可當我...
    茶點故事閱讀 67,857評論 6 392
  • 文/花漫 我一把揭開白布宾茂。 她就那樣靜靜地躺著瓷马,像睡著了一般。 火紅的嫁衣襯著肌膚如雪跨晴。 梳的紋絲不亂的頭發(fā)上欧聘,一...
    開封第一講書人閱讀 51,679評論 1 305
  • 那天,我揣著相機與錄音端盆,去河邊找鬼怀骤。 笑死,一個胖子當著我的面吹牛爱谁,可吹牛的內容都是我干的晒喷。 我是一名探鬼主播,決...
    沈念sama閱讀 40,406評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼访敌,長吁一口氣:“原來是場噩夢啊……” “哼凉敲!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 39,311評論 0 276
  • 序言:老撾萬榮一對情侶失蹤爷抓,失蹤者是張志新(化名)和其女友劉穎势决,沒想到半個月后,有當地人在樹林里發(fā)現了一具尸體蓝撇,經...
    沈念sama閱讀 45,767評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡果复,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,945評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現自己被綠了渤昌。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片虽抄。...
    茶點故事閱讀 40,090評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖独柑,靈堂內的尸體忽然破棺而出迈窟,到底是詐尸還是另有隱情,我是刑警寧澤忌栅,帶...
    沈念sama閱讀 35,785評論 5 346
  • 正文 年R本政府宣布车酣,位于F島的核電站,受9級特大地震影響索绪,放射性物質發(fā)生泄漏湖员。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,420評論 3 331
  • 文/蒙蒙 一瑞驱、第九天 我趴在偏房一處隱蔽的房頂上張望娘摔。 院中可真熱鬧,春花似錦钱烟、人聲如沸晰筛。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,988評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至曙博,卻和暖如春拥刻,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背父泳。 一陣腳步聲響...
    開封第一講書人閱讀 33,101評論 1 271
  • 我被黑心中介騙來泰國打工般哼, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人惠窄。 一個月前我還...
    沈念sama閱讀 48,298評論 3 372
  • 正文 我出身青樓蒸眠,卻偏偏與公主長得像,于是被迫代替她去往敵國和親杆融。 傳聞我的和親對象是個殘疾皇子楞卡,可洞房花燭夜當晚...
    茶點故事閱讀 45,033評論 2 355

推薦閱讀更多精彩內容