Я нашел ответ: С помощью этого метода вы можете избежать броска в конце. Таким образом, у вас есть только один ViewModelProvider во всем вашем проекте.
Это будет работать с любым классом, принимающим UserDataSourceRepository в качестве аргумента конструктора, и вызовет NoSuchMethodException, если у класса нет правильного конструктора.
class AlreadyHaveAnAccountFragmentViewModelFactory (private val userDataSourceRepository: UserDataSourceRepository) :
ViewModelProvider.NewInstanceFactory() {
override fun <T : ViewModel?> create(modelClass: Class<T>): T {
return modelClass.getConstructor(UserDataSourceRepository::class.java).newInstance(userDataSourceRepository) as T
}
}