在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 教程/ Android/ Kotlin枚舉類
Kotlin內(nèi)聯(lián)函數(shù)
Kotlin開發(fā)環(huán)境設(shè)置(Eclipse)
Kotlin調(diào)用Java代碼
Kotlin使用Ant
Kotlin編譯器插件
Kotlin相等性
Kotlin JavaScript模塊
編寫Kotlin代碼文檔
Kotlin返回和跳轉(zhuǎn)
Kotlin異常處理
Kotlin可見性修飾符
Kotlin委托
Kotlin委托屬性
Kotlin編碼約定/編碼風(fēng)格
Kotlin基礎(chǔ)語法
使用Kotlin進(jìn)行服務(wù)器端開發(fā)
Kotlin接口
Kotlin反射
Kotlin類型別名
Kotlin枚舉類
Kotlin當(dāng)前版本是多少?
Kotlin注解處理工具
Kotlin類型的檢查與轉(zhuǎn)換
Kotlin屬性和字段
Kotlin類型安全的構(gòu)建器
Kotlin相比Java語言有哪些優(yōu)點(diǎn)?
Kotlin JavaScript反射
Kotlin 是什么?
Kotlin泛型
Kotlin慣用語法
Kotlin與OSGi
Kotlin數(shù)據(jù)類型
Kotlin是面向?qū)ο筮€是函數(shù)式語言?
Kotlin動(dòng)態(tài)類型
Kotlin協(xié)程
Kotlin操作符符重載
Kotlin使用Gradle
Kotlin密封類
Kotlin兼容性
Kotlin集合
Kotlin調(diào)用JavaScript
Kotlin null值安全
Kotlin函數(shù)
Kotlin開發(fā)環(huán)境設(shè)置(IntelliJ IDEA)
Kotlin嵌套類
Kotlin控制流程
Kotlin和Java語言比較
Kotlin 與 Java 語言兼容嗎?
Kotlin教程
Kotlin類和繼承
Kotlin對象表達(dá)式和對象聲明
JavaScript中調(diào)用Kotlin
Kotlin區(qū)間/范圍
Kotlin數(shù)據(jù)類
Kotlin lambda表達(dá)式
Kotlin是免費(fèi)的嗎?
Kotlin包
使用Kotlin進(jìn)行Android開發(fā)
在Java中調(diào)用Kotlin代碼
Kotlin this表達(dá)式
使用Kotlin進(jìn)行JavaScript開發(fā)
Kotlin擴(kuò)展
Kotlin解構(gòu)聲明
Kotlin注解
Kotlin使用Maven

Kotlin枚舉類

枚舉類的最基本的用法是實(shí)現(xiàn)類型安全的枚舉

enum class Direction {
    NORTH, SOUTH, WEST, EAST
}

每個(gè)枚舉常量都是一個(gè)對象。枚舉常量用逗號分隔。

初始化

因?yàn)槊恳粋€(gè)枚舉都是枚舉類的實(shí)例,所以他們可以是初始化過的。

enum class Color(val rgb: Int) {
        RED(0xFF0000),
        GREEN(0x00FF00),
        BLUE(0x0000FF)
}

匿名類

枚舉常量也可以聲明自己的匿名類

enum class ProtocolState {
    WAITING {
        override fun signal() = TALKING
    },

    TALKING {
        override fun signal() = WAITING
    };

    abstract fun signal(): ProtocolState
}

及相應(yīng)的方法、以及覆蓋基類的方法。注意,如果枚舉類定義任何
成員,要使用分號將成員定義中的枚舉常量定義分隔開,就像
在 Java 中一樣。

使用枚舉常量

就像在 Java 中一樣,Kotlin 中的枚舉類也有合成方法允許列出
定義的枚舉常量以及通過名稱獲取枚舉常量。這些方法的
簽名如下(假設(shè)枚舉類的名稱是 EnumClass):

EnumClass.valueOf(value: String): EnumClass
EnumClass.values(): Array<EnumClass>

如果指定的名稱與類中定義的任何枚舉常量均不匹配,valueOf() 方法將拋出 IllegalArgumentException 異常。

自 Kotlin 1.1 起,可以使用 enumValues<T>()enumValueOf<T>() 函數(shù)以泛型的方式訪問枚舉類中的常量

enum class RGB { RED, GREEN, BLUE }

inline fun <reified T : Enum<T>> printAllValues() {
    print(enumValues<T>().joinToString { it.name })
}

printAllValues<RGB>() // 輸出 RED, GREEN, BLUE

每個(gè)枚舉常量都具有在枚舉類聲明中獲取其名稱和位置的屬性:

val name: String
val ordinal: Int

枚舉常量還實(shí)現(xiàn)了 Comparable 接口,
其中自然順序是它們在枚舉類中定義的順序。


下一篇:Kotlin函數(shù)