如何创建包含全部枚举键的Kotlin Map并保证空安全?
如何创建包含所有枚举键的Map并保证空安全?
我想要创建一个包含某枚举所有键的Map,同时保证空安全。目前我写的代码是这样的:
enum class Product { A, B } private val _products = mapOf<Product, MutableLiveData<Int>>( Product.A to MutableLiveData(), Product.B to MutableLiveData() ) val products = mapOf<Product, LiveData<Int>>( Product.A to _products[Product.A]!!, Product.B to _products[Product.B]!! )
更新
感谢@Michael提供的思路,现在可以简化Map的构造代码:
private val _products = Product.values().associateWith { MutableLiveData<Int>() } val products: Map<Product, LiveData<Int>> = _products
这样解决了构造时确保包含所有枚举键的问题,但在获取值的时候还是不得不使用非空断言:
val a: Int = products[Product.A]!!.value
内容的提问来源于stack exchange,提问作者yaugenka
相关产品推荐
相关产品推荐

