반응형
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")
참조 :
반응형
'코딩 > 코드리뷰' 카테고리의 다른 글
kotlin toLowerCase() Deprecated (0) | 2021.09.29 |
---|---|
for문 같은 데이터 찾아서 position 저장 (0) | 2021.09.09 |
position 범위안에 있는지 확인 (0) | 2021.09.09 |
변수선언 한번에 객체에서 가져와 여러개 하기. (0) | 2021.08.31 |
뷰 바인딩 (0) | 2021.08.31 |