Kotlin基礎之enum類

Kotlin基礎<三>enum類


枚舉類

  在Java中,你不需要爲你的enum類傳入參數列表,你可以在enum的內部去聲明字段和方法。但在Kotlin中,這有點不太一樣:

enum class Size(val abbreviation: String) {
    SMALL("S"), MEDIUM("M"),
    LARGE("L"), EXTRA_LARGE("XL")
}

fun main(vararg args:String) {
    println(Size.EXTRA_LARGE.abbreviation)
}
//result
//XL

同樣功能的Java代碼:

public enum  Size {
    SMALL("S"), MEDIUM("M"), LARGE("L"), EXTRA_LARGE("XL");
    private Size(String abbreviation) {this.abbreviation = abbreviation;}
    private String abbreviation;

    public String getAbbreviation() {
        return abbreviation;
    }
}

  對比之下,可以發現,在kotlin中,需用enum class聲明一個枚舉類而不是enum來聲明。需要注意的是,如果在enum class裏面如果要聲明一個方法,則在枚舉常量後面必須要加上分號,例如我再聲明一個方法來打印枚舉常量的名字(雖然這個聲明方法是多此一舉,但這裏僅僅是爲了說明例子才這樣做):

enum class Size(val abbreviation: String) {
    SMALL("S"), MEDIUM("M"),
    LARGE("L"), EXTRA_LARGE("XL");//這個分號不能少
    fun printName() = name
}

fun main(vararg args:String) {
    println(Size.EXTRA_LARGE.abbreviation)
    println(Size.SMALL.printName())
}
//result:
//XL
//SMALL
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章