kotlin - 仅计算一次属性

标签 kotlin

给定以下代码

class A
class B {
    val property: A
        get() = A()
}

fun main(args: Array<String>) {
    val b = B()
    println(b.property)
    println(b.property)
}

每次 B.property 都会返回一个新的 A 实例。有没有一种简单的方法让它每次都返回相同的实例?

最佳答案

您可以使用委托(delegate)属性 lazy简单地说,例如:

class B {
    val property by lazy(::A)
}

您也可以像这样使用 lambda 表达式:

class B {
    val property by lazy { A() }
}

关于kotlin - 仅计算一次属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44750407/

相关文章:

android - 在 MPAndroidChart 的某些情况下管理文本 PieChart

android - 清洁架构 : ViewModel with multiple UseCases on Android

android - Kotlin - 切换工具提示

android - Kotlin 综合属性

java - 如何优雅地支持firebase数据库上的数据类型更改?

json - 如何将 KotlinModule 注册到 AWS lambda Jackson Object Mapper?

java - 使用用户的区域设置时用秒格式化日期和时间

java - 从 Java 调用 Kotlin(找不到符号)

kotlin - 为什么协程首先在调用者线程上运行,但在第一个挂起点之后它在 “Dispatchers.Unconfined” 中的 DefaultExecutor 上运行?

android - Dagger 无法提供 Kotlin 注入(inject)