언어/Kotlin
코틀린 지연 초기화
김어찐
2022. 5. 24. 17:02
728x90
package lazyinit
fun main() {
val obj = TestClass1()
println("obj.a1 = ${obj.a1}")
println("obj.a2 = ${obj.a2}")
obj.testMethod1()
println("obj.a3 = ${obj.a3}")
println("obj.a4 = ${obj.a4}")
}
class TestClass1 {
var a1:Int = 100
var a2:Int
// 선언시 초기화를 하지 않아도 됨
// primitive 타입은 지원 X
// val 선언 x
lateinit var a3:String
//4를 사용을 할때 초기화
val a4:String by lazy {
println("a4 init")
"문자열2"
}
init {
a2 = 200
}
fun testMethod1() {
if (::a3.isInitialized == false) {
a3 = "문자열"
}
println("a3 = ${a3}")
}
}
728x90