코딩/코드리뷰

lateinit 초기화 확인하기

코딩하는후운 2021. 9. 9. 17:36
반응형

kotlin 1.2부터는 lateinit 초기화를 확인 할 수 있다.

실제 값을 사용할 때 lateinit을 한번 체크해줌으로써 안전하게 접근할 수 있따.

이때 아래와 같이 ::을 통해서만 접근이 가능한 .isInitialized을 사용하여 체크할 수 있다.

 

// 부르는 시점 초기화

sampleAdapter = SampleAdapter(ImageLoaderAdapterViewModel(this@SampleMainActivity, 3))

if (::sampleAdapter.isInitialized) {

    sampleAdapter.addItem() sampleAdapter.notifyDataSetChanged()

}

 

isInitialized Higher-Order function kotlin extensions을 통해 구현되어 있다.

 

@SinceKotlin("1.2")

@InlineOnly

inline val @receiver:AccessibleLateinitPropertyLiteral KProperty0<*>.isInitialized: Boolean

    get() = throw NotImplementedError("Implementation is intrinsic")

 

 

참조 :

https://thdev.tech/kotlin/2018/03/25/Kotlin-lateinit-lazy/

반응형