업데이트:

카테고리:

/

태그: ,

lateinit

처음 선언할 때는 값을 할당하지 않고, 타입만 지정함

이후 해당 변수를 사용할 떄 원하는 대로 할당할 수 있음

나중에 사용할 때 초기화가 되어있지 않으면 Exception 발생

by lazy

lazy {} 내부 구문에 미리 초기화 할 코드를 넣어놓는다.

이후 해당 변수가 사용될 때 초기화를 시킨다.


이중 리사이클러 뷰를 초기화 하는 과정에서 내부에 있는 리사이클러 뷰의 adapter가 list의 마지막 값으로 갱신되어 중복되는 문제가 발생

by lazy 는 해당 변수가 처음 사용될 때 초기화가 진행되고 그 이후에는 별도의 초기화가 일어나지 않는다.

선언 당시에는 초기화되지 않고 이후 의존하는 값들이 초기화 되거나 해당변수가 호출되면 lazy {} 구문으로 해당 변수를 초기화 시킨다.

즉, 불변한 값이므로 값을 변경할 수 없다.

그래서 BindViewHolder 내부에서 adapter를 초기화하고 정의하니 리스트의 값이 정상적으로 들어갔다.