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