前言
相信很多人應該都有在Java上寫過狀態處理的程式吧?!
一般都會宣告一個列舉來定義程式執行的生命週期狀態,像這樣:
public enum TestStatus {
STATUS_1,
STATUS_2,
STATUS_3,
STATUS_4
}
在Kotlin上面也有列舉,而且還是一種類別。宣告方式如下所示:
enum class TestStatus {
STATUS_1,
STATUS_2,
STATUS_3,
STATUS_4
}
使用enum class宣告該物件為一個列舉類別。
類別中的每一個列舉常量都是一個物件,物件跟物件之間以 , 分隔。
此外,列舉還可以指定數值,如下:
enum class TestStatus(var value: Int) {
STATUS_1(1),
STATUS_2(2),
STATUS_3(3),
STATUS_4(4)
}
使用方式
使用方式如下:
enum class TestStatus {
STATUS_1,
STATUS_2,
STATUS_3,
STATUS_4
}
var enumItem = TestStatus.STATUS_1
// 取得列舉常量的名稱
var enumItemName = TestStatus.STATUS_1.name
// 取得列舉常量的索引
var enumItemIndex = TestStatus.STATUS_1.ordinal
此外,列舉類別也可以作為類別的屬性,用法如下:
class TestClass(
val param1: String,
val param2: TestStatus,
val param3: Boolean
)