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