gpt4 book ai didi

kotlin - 具有名称和顺序构造函数的Enum类

转载 作者:行者123 更新时间:2023-12-02 13:03:29 28 4
gpt4 key购买 nike

来自Java背景,我想知道如何处理带有字符串名称和int序号的枚举。

我注意到在尝试指定构造函数时,属性名称和序数已内置在枚举中,并给出了阴影警告。这是我的代码。

enum class Department {
ACCOUNTING(0, "Accounting"),
SALES(1, "Sales"),
HR(2, "Human Resource")
}

最佳答案

您可以为要为其返回不同值的特定toString()类(HR)覆盖enum。您还可以为父toString()覆盖enum并使其返回仅首字母大写的String,这样就可以保持命名约定完整。

enum class Department {
ACCOUNTING,
SALES,
HR {
override fun toString() = "Human Resource"
};

// capitalize first letter
override fun toString() =
super.toString().toLowerCase().capitalize()
}

然后,您可以简单地调用 toString()或将其作为字符串传递。
fun main() {
val hrString = HR.toString()
println(hrString) // Human Resource
println(HR) // Human Resource
println(ACCOUNTING) // Accounting
println(SALES) //Sales
}

关于kotlin - 具有名称和顺序构造函数的Enum类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60501461/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com