Exam4Training

override fun <T : ViewModel?

An example. In our ViewModelFactory (that implements ViewModelProvider.Factory) we have an instance of our Repository, named mRepository. Our ViewModel has such constructor: class MyViewModel(private val mRepository: MyRepository) : ViewModel()…

Next, in our ViewModelFactory create ViewModel method (overriden) looks like this:

override fun <T : ViewModel?> create(modelClass: Class<T>): T {

return try {

//MISSED RETURN VALUE HERE”

} catch (e: InstantiationException) {

throw RuntimeException("Cannot create an instance of $modelClass", e)

} catch (e: IllegalAccessException) {

throw RuntimeException("Cannot create an instance of $modelClass", e)

} catch (e: NoSuchMethodException) {

throw RuntimeException("Cannot create an instance of $modelClass", e)

} catch (e: InvocationTargetException) {

throw RuntimeException("Cannot create an instance of $modelClass", e)

}

}

What should we write instead of “//MISSED RETURN VALUE HERE”?
A . modelClass.getConstructor()
.newInstance(mRepository)
B . modelClass.getConstructor(MyRepository::class.java)
.newInstance()
C . modelClass.getConstructor(MyRepository::class.java)
.newInstance(mRepository)

Answer: C

Exit mobile version