Noa*_*ein 6 singleton kotlin data-class
假设我有一个数据类:
data class SensorData(val name: String, val temp : Double)
Run Code Online (Sandbox Code Playgroud)
SensorData我通过 REST 服务或内部 setter 方法创建此对象,但它name始终已填充并且temp可能为空。
此外,我需要通过几个类来获取这个 SensorData 对象,这就是我想到使用singleton.
显然我需要此处描述的object关键字,但是如何组合?data class object
您可以使用伴随对象来保留对数据对象的引用:
data class SensorData(val name: String, var temp : Double) {
companion object {
@Volatile
@JvmStatic
private var INSTANCE: SensorData? = null
@JvmStatic
@JvmOverloads
fun getInstance(name: String = "default", temp : Double = 0.0): SensorData = INSTANCE ?: synchronized(this) {
INSTANCE ?: SensorData(name, temp).also { INSTANCE = it }
}
}
}
Run Code Online (Sandbox Code Playgroud)
并像这样使用它:
val name1 = SensorData.getInstance("name", 5.0).name
// Or with default values:
val name2 = SensorData.getInstance().name
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8389 次 |
| 最近记录: |