강의

멘토링

로드맵

Inflearn Community Q&A

tkdgns82345830's profile image
tkdgns82345830

asked

Easy-to-understand introduction to Modern Android Development by Frozen Coder

Practice2C-Android App Architecture Setup (Repository, ViewModel, Coroutine, Livedata)

간단한 질문입니다 ㅠㅠ

Written on

·

126

0

bookSearchViewModel = ViewModelProvider(this, factory)[BookSearchViewModel::class.java]

위 코드에서 [BookSearchViewModel::class.java] 부분 문법이 검색해도 안나오더라구요 ㅠBookSearchViewModel::class.java 로 형변환 하는건가요?

kotlinarchitectureandroidjetpack

Answer 1

1

frozencoder님의 프로필 이미지
frozencoder
Instructor

BookSearchViewModel::class.java 에서 ::는 자바의 리플렉션을 사용한 것입니다.

리플렉션은 클래스 타입을 몰라도 그 클래스의 속성에 접근할 수 있게 해주는  API입니다. ViewModelProvider는 컴파일 타임이 아니라 런타임에 실행되어 BookSearchViewModel을 만들어야 하는데 런타임에는 BookSearchViewModel의 클래스를 알 수가 없습니다. 하지만 BookSearchViewModel::class.java를 전달해주면 리플렉션을 통해 ViewModelProvider가 BookSearchViewModel의 인스턴스를 런타임에 만들 수 있게 됩니다.

tkdgns82345830님의 프로필 이미지
tkdgns82345830
Questioner

설명 감사합니다 ^^

tkdgns82345830's profile image
tkdgns82345830

asked

Ask a question