如何声明一组固定字符串的Kotlin类型?

如何声明一组固定字符串的Kotlin类型?,kotlin,Kotlin,在Typescript中,我可以将一组有限的字符串声明为类型: declare type Status = 'GOOD' | 'MEDIUM' | 'POOR'; 然后,我可以使用此类型来限制分配给status属性的字符串: interface Foo { status: Status; } 在Kotlin中如何执行此操作?在Kotlin中,您将为此创建一个枚举 enum class Status { GOOD, MEDIUM, POOR } 在这种基本情况下,您可以使用枚举常

在Typescript中,我可以将一组有限的字符串声明为类型:

declare type Status = 'GOOD' | 'MEDIUM' | 'POOR';
然后,我可以使用此类型来限制分配给
status
属性的字符串:

interface Foo {
  status: Status;
}

在Kotlin中如何执行此操作?

在Kotlin中,您将为此创建一个
枚举

enum class Status {
    GOOD, MEDIUM, POOR
}
在这种基本情况下,您可以使用
枚举
常量的
名称
,如下所示:

val state: Status = Status.MEDIUM
val stateString: String = state.name
如果希望拥有更复杂的枚举,可以为其提供自定义属性:

enum class Status(val description: String) {
    GOOD("Good State"), MEDIUM("Medium State"), POOR("Poor State")
}

在Kotlin中,您将为此创建一个
enum

enum class Status {
    GOOD, MEDIUM, POOR
}
在这种基本情况下,您可以使用
枚举
常量的
名称
,如下所示:

val state: Status = Status.MEDIUM
val stateString: String = state.name
如果希望拥有更复杂的枚举,可以为其提供自定义属性:

enum class Status(val description: String) {
    GOOD("Good State"), MEDIUM("Medium State"), POOR("Poor State")
}

你不能直接这么做。如果需要,您可以声明枚举并将每个枚举项从/转换为字符串。您不能直接这样做。如果需要,您可以声明枚举并将每个枚举项从/转换为字符串。感谢@s1m0nw1-如果字符串包含空格或其他古怪字符,您将如何更改解决方案?您可以像普通类一样向枚举添加属性。我将调整answerThank@s1m0nw1-如果字符串有空格或其他古怪字符,您将如何更改解决方案?您可以像普通类一样向枚举添加属性。我将调整答案