![](/img/trans.png)
[英]Compile time error in passing vararg parameter to another function in Kotlin
[英]How to retrieve the value(s) of a parameter declared with vararg in an enum in Kotlin
我是Kotlin的新手,我有一個包含許多值的枚舉,這些值指的是我的應用程序具有的不同狀態。
現在我需要在應用程序進入狀態時記錄某些內容,但枚舉中的某些狀態可以記錄多個內容(基於來自應用程序外部的其他參數),並且某些狀態不需要記錄某些內容。
這是我的枚舉:
enum class StateName(vararg log: String) {
FIRST_CONNECTION(), // no parameter here
AUTHORIZATION_CHECK("message 1", "message 2"),
HANDSHAKE_SUCCESS("message")
//...
}
如果使用單個必需參數StateName(var log: String)
聲明了枚舉,我本可以使用HANDSHAKE_SUCCESS.log
來檢索其值,但是使用vararg
IDE(android studio)根本找不到log
。
那么如何用log[0]
類的東西檢索我的字符串呢?
注意 :
您需要將其更改為:
enum class StateName(vararg val log: String)
這樣您就可以訪問日志了
你需要在枚舉中創建一個變量,它將包含所有的參數,如下所示:
enum class StateName( vararg log: String) {
FIRST_CONNECTION(), // no parameter here
AUTHORIZATION_CHECK("message 1", "message 2"),
HANDSHAKE_SUCCESS("message");
public var logParams:Array<out String>
init{
logParams=log
}
}
要打印與特定枚舉相對應的參數,您可以按以下方式迭代:
for (item in StateName.AUTHORIZATION_CHECK.logParams) {
println("item = "+item)
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.