【25】kotlin 枚举

≡放荡痞女 提交于 2020-07-29 07:43:04
  • 实例可数的类,注意枚举也是类

  • 可以修改构造,添加成员

  • 可以提升代码的表现力。也有一定的性能开销

code

package com.yzdzy.kotlin

enum class LogLevel(val id: Int) {
    VERBOSE(0), DEBUG(1), INFO(2), WARN(3), ERROR(4), ASSERT(5);

    fun getTag(): String {
        return "$id,$name"
    }

    override fun toString(): String {

        return "$name,$ordinal"
    }
}
就相当于下面的代码

class LogLevel2 protected constructor() {
    companion object {
        val VERBOSE = LogLevel2()
        val DEBUG = LogLevel2()
        val INFO = LogLevel2()
        val WARN = LogLevel2()
        val ASSERT = LogLevel2()
    }
}

fun main(args: Array<String>) {
    println(LogLevel.DEBUG.getTag())
    //顺序 相当于索引index
    println(LogLevel.DEBUG.ordinal)
    //打印所有数据
    LogLevel.values().map(::println)
    //拿到实例对象
    println(LogLevel.valueOf("error".toUpperCase()))
}

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!