给出以下代码
class A
class B {
val property: A
get() = A()
}
fun main(args: Array<String>) {
val b = B()
println(b.property)
println(b.property)
}
每次A
都会返回一个新的B.property
个实例。是否有一种简单的方法可以让它每次都返回相同的实例?
答案 0 :(得分:2)
您可以简单地使用委托属性lazy,例如:
class B {
val property by lazy(::A)
}
您也可以使用lambda表达式,如下所示:
class B {
val property by lazy { A() }
}
答案 1 :(得分:0)
您也可以这样做:
object A
class B {
val property: A
get() = A
}
fun main(args: Array<String>) {
val b = B()
println(b.property) // >>> A@3cd1a2f1
println(b.property) // >>> A@3cd1a2f1
}