Ellen Spertus
04/08/2020, 9:28 PMval r: Runnable = Runnable {
println("In runnable")
r.run()
}
(I know the code would generate a stack overflow; it’s an oversimplification of what I really want to do.)
How can I do this? Changing r
from val
to var
has no effect. Do I need to create a second variable and make it refer to the first value?
lateinit var r2: Runnable
var r: Runnable = Runnable {
println("In runnable")
r2.run()
}
init {
r2 = r
}
Dominaezzz
04/08/2020, 9:30 PMCasey Brooks
04/08/2020, 9:34 PMlazy { }
propertyEllen Spertus
04/08/2020, 9:34 PMVariable 'r' must be initialized
with:
val r: Runnable = object: Runnable {
@Override
override fun run() {
println("In runnable")
r.run()
}
}
Ellen Spertus
04/08/2020, 9:36 PMval r: Runnable by lazy {
Runnable {
println("In runnable")
r.run()
}
}
Dominaezzz
04/08/2020, 9:39 PMval r: Runnable = object: Runnable {
@Override
override fun run() {
println("In runnable")
this.run()
}
}
Ellen Spertus
04/08/2020, 9:56 PMKroppeb
04/09/2020, 11:07 AM