如何在 Kotlin 的枚举中检索使用 vararg 声明的参数的值

Cli*_*ton 5 enums android optional-arguments kotlin

我是 Kotlin 的新手,我有一个包含许多值的枚举,这些值指的是我的应用程序具有的不同状态。

现在我需要在应用程序进入状态时记录一些东西,但枚举中的某些状态可以记录不止一件事(基于来自应用程序外部的其他参数),而某些状态不需要记录某些东西。

这是我的枚举:

enum class StateName(vararg log: String) {
    FIRST_CONNECTION(), // no parameter here
    AUTHORIZATION_CHECK("message 1", "message 2"),
    HANDSHAKE_SUCCESS("message")
    //...
}
Run Code Online (Sandbox Code Playgroud)

如果使用单个强制参数声明了枚举,StateName(var log: String)我可以用来HANDSHAKE_SUCCESS.log检索其值,但使用varargIDE(android studio)根本找不到log

那么我怎样才能用类似的东西检索我的字符串log[0]

注意

  • 我的枚举已经定义(没有参数)并在我的应用程序中使用,我不能使用不同的方法来更改实际状态/添加日志记录功能
  • 即使我刚刚开始学习,我也需要使用 Kotlin,因为该项目是用这种语言编写的,所以我只想知道我是否(以及如何)能做到这一点。

小智 8

您需要将其更改为:

enum class StateName(vararg val log: String)
Run Code Online (Sandbox Code Playgroud)

这样你就可以访问日志

  • 哇,这么简单吗?我觉得自己很蠢。谢谢 (2认同)