kotlin像这样的代码:val map = mutableMapOf("默认" to 0, "带rfid" to 1, "无rfid" to 2) 写在哪里比较好,方便其他地方也能调用
时间: 2024-10-16 18:19:13 浏览: 21
from-java-to-kotlin:从Java到Kotlin-Java到Kotlin的备忘单
这段代码定义了一个mutableMapOf类型的map,常用于初始化一个键值对集合。在Kotlin中,这样的代码片段通常会放在以下几个地方以提高复用性:
1. **工具类或Util类** (Utility Class): 可以创建一个专门处理数据转换或者映射的辅助类,将此类操作封装起来,如`MapUtils.kt`。
```kotlin
object MapUtils {
val DEFAULT_RFID_VALUE_MAP = mutableMapOf<String, Int>("默认" to 0, "带rfid" to 1, "无rfid" to 2)
}
```
2. **枚举类的伴生对象** (Companion Object of an Enum): 如果这个map关联的是枚举值,可以将其作为枚举类的伴生对象,这样可以直接通过枚举名访问。
```kotlin
enum class RFIDStatus(val value: Int) {
DEFAULT(0),
WITH_RFID(1),
WITHOUT_RFID(2);
object Values {
val map =.mutableMapOf<String, RFIDStatus>()
init {
for (status in values()) {
map[status.name] = status
}
}
}
}
fun getRFIDStatusByName(name: String): RFIDStatus {
return RFIDStatus.Values.map[name] ?: throw IllegalArgumentException("Invalid RFID status name")
}
```
3. **单例类** (Singleton Class): 如果需要在整个应用程序中共享这一个map,可以创建一个单例类来存储。
```kotlin
class DefaultRFIDValueProvider {
companion object {
private val map = mutableMapOf<String, Int>(
"默认" to 0,
"带rfid" to 1,
"无rfid" to 2
)
fun getRFIDValue(key: String): Int {
return map[key] ?: throw IllegalArgumentException("Invalid key")
}
}
}
```
阅读全文