# ViewModelProvider.NewInstanceFactory

Artifact: [androidx.lifecycle:lifecycle-viewmodel](https://developer.android.com/jetpack/androidx/releases/lifecycle) [View Source](https://cs.android.com/search?q=file:androidx/lifecycle/ViewModelProvider.android.kt+class:androidx.lifecycle.ViewModelProvider.NewInstanceFactory) Added in [2.0.0](https://developer.android.com/jetpack/androidx/releases/lifecycle#2.0.0)

*** ** * ** ***

Common/AllAndroid/JVM
- android

  ```
  open class ViewModelProvider.NewInstanceFactory : ViewModelProvider.Factory
  ```
Known direct subclasses [ViewModelProvider.AndroidViewModelFactory](https://developer.android.com/reference/kotlin/androidx/lifecycle/ViewModelProvider.AndroidViewModelFactory)

|---|---|
| `https://developer.android.com/reference/kotlin/androidx/lifecycle/ViewModelProvider.AndroidViewModelFactory` | Factory that creates `https://developer.android.com/reference/kotlin/androidx/lifecycle/AndroidViewModel` and `https://developer.android.com/reference/kotlin/androidx/lifecycle/ViewModel` instances. |

*** ** * ** ***

Simple factory, which calls empty constructor on the give class.

## Summary

| ### Public constructors |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/lifecycle/ViewModelProvider.NewInstanceFactory#NewInstanceFactory()()` | android |

| ### Public functions |
|---|---|---|
| `open T` | `<T : https://developer.android.com/reference/kotlin/androidx/lifecycle/ViewModel> https://developer.android.com/reference/kotlin/androidx/lifecycle/ViewModelProvider.NewInstanceFactory#create(kotlin.reflect.KClass,androidx.lifecycle.viewmodel.CreationExtras)(modelClass: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.reflect/-k-class/index.html<T>, extras: https://developer.android.com/reference/kotlin/androidx/lifecycle/viewmodel/CreationExtras)` Creates a new instance of the given `https://developer.android.com/reference/kotlin/androidx/lifecycle/ViewModelProvider.Factory#create(kotlin.reflect.KClass,androidx.lifecycle.viewmodel.CreationExtras)`. | android |

## Public constructors

### NewInstanceFactory

android Added in [2.0.0](https://developer.android.com/jetpack/androidx/releases/lifecycle#2.0.0)

```
NewInstanceFactory()
```

## Public functions

### create

android

```
open fun <T : ViewModel> create(modelClass: KClass<T>, extras: CreationExtras): T
```

Creates a new instance of the given `https://developer.android.com/reference/kotlin/androidx/lifecycle/ViewModelProvider.Factory#create(kotlin.reflect.KClass,androidx.lifecycle.viewmodel.CreationExtras)`.

| Parameters |
|---|---|
| `modelClass: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.reflect/-k-class/index.html<T>` | `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.reflect/-k-class/index.html` of the `https://developer.android.com/reference/kotlin/androidx/lifecycle/ViewModel` to create |
| `extras: https://developer.android.com/reference/kotlin/androidx/lifecycle/viewmodel/CreationExtras` | `https://developer.android.com/reference/kotlin/androidx/lifecycle/viewmodel/CreationExtras` passed to the `https://developer.android.com/reference/kotlin/androidx/lifecycle/ViewModelProvider.Factory` to create the `https://developer.android.com/reference/kotlin/androidx/lifecycle/ViewModel` |

| Returns |
|---|---|
| `T` | new `https://developer.android.com/reference/kotlin/androidx/lifecycle/ViewModel` instance of type `https://developer.android.com/reference/kotlin/androidx/lifecycle/ViewModelProvider.Factory#create(kotlin.reflect.KClass,androidx.lifecycle.viewmodel.CreationExtras)` |