# CreationExtrasKt

Added in 2.9.0

*** ** * ** ***


```
public final class CreationExtrasKt
```

<br />

*** ** * ** ***

## Summary

| ### Public methods |
|---|---|
| `static final @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/lifecycle/viewmodel/CreationExtras` | `https://developer.android.com/reference/androidx/lifecycle/viewmodel/CreationExtrasKt#CreationExtras(androidx.lifecycle.viewmodel.CreationExtras,kotlin.Function1)( @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/lifecycle/viewmodel/CreationExtras initialExtras, @https://developer.android.com/reference/androidx/annotation/NonNull Function1<@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/lifecycle/viewmodel/MutableCreationExtras, https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html> builderAction )` Builds a new read-only `https://developer.android.com/reference/androidx/lifecycle/viewmodel/package-summary#CreationExtras(androidx.lifecycle.viewmodel.CreationExtras,kotlin.Function1)` starting with the given `https://developer.android.com/reference/androidx/lifecycle/viewmodel/package-summary#CreationExtras(androidx.lifecycle.viewmodel.CreationExtras,kotlin.Function1)`. |
| `static final boolean` | `https://developer.android.com/reference/androidx/lifecycle/viewmodel/CreationExtrasKt#(androidx.lifecycle.viewmodel.CreationExtras).contains(androidx.lifecycle.viewmodel.CreationExtras.Key)( @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/lifecycle/viewmodel/CreationExtras receiver, @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/lifecycle/viewmodel/CreationExtras.Key<@https://developer.android.com/reference/androidx/annotation/NonNull ?> key )` Checks if the `https://developer.android.com/reference/androidx/lifecycle/viewmodel/CreationExtras` contains the given `https://developer.android.com/reference/androidx/lifecycle/viewmodel/package-summary#(androidx.lifecycle.viewmodel.CreationExtras).contains(androidx.lifecycle.viewmodel.CreationExtras.Key)`. |
| `static final @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/lifecycle/viewmodel/MutableCreationExtras` | `https://developer.android.com/reference/androidx/lifecycle/viewmodel/CreationExtrasKt#(androidx.lifecycle.viewmodel.CreationExtras).plus(androidx.lifecycle.viewmodel.CreationExtras)( @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/lifecycle/viewmodel/CreationExtras receiver, @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/lifecycle/viewmodel/CreationExtras creationExtras )` Creates a new read-only `https://developer.android.com/reference/androidx/lifecycle/viewmodel/CreationExtras` by replacing or adding entries to `https://developer.android.com/reference/androidx/lifecycle/viewmodel/CreationExtras` extras from another `https://developer.android.com/reference/androidx/lifecycle/viewmodel/package-summary#(androidx.lifecycle.viewmodel.CreationExtras).plus(androidx.lifecycle.viewmodel.CreationExtras)`. |
| `static final void` | `https://developer.android.com/reference/androidx/lifecycle/viewmodel/CreationExtrasKt#(androidx.lifecycle.viewmodel.MutableCreationExtras).plusAssign(androidx.lifecycle.viewmodel.CreationExtras)( @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/lifecycle/viewmodel/MutableCreationExtras receiver, @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/lifecycle/viewmodel/CreationExtras creationExtras )` Appends or replaces all entries from the given `https://developer.android.com/reference/androidx/lifecycle/viewmodel/package-summary#(androidx.lifecycle.viewmodel.MutableCreationExtras).plusAssign(androidx.lifecycle.viewmodel.CreationExtras)` in `https://developer.android.com/reference/androidx/lifecycle/viewmodel/MutableCreationExtras` mutable extras. |

## Public methods

### CreationExtras

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

```
public static final @NonNull CreationExtras CreationExtras(
    @NonNull CreationExtras initialExtras,
    @NonNull Function1<@NonNull MutableCreationExtras, Unit> builderAction
)
```

Builds a new read-only `https://developer.android.com/reference/androidx/lifecycle/viewmodel/package-summary#CreationExtras(androidx.lifecycle.viewmodel.CreationExtras,kotlin.Function1)` starting with the given `https://developer.android.com/reference/androidx/lifecycle/viewmodel/package-summary#CreationExtras(androidx.lifecycle.viewmodel.CreationExtras,kotlin.Function1)`.

You can customize the extras further by applying a `https://developer.android.com/reference/androidx/lifecycle/viewmodel/package-summary#CreationExtras(androidx.lifecycle.viewmodel.CreationExtras,kotlin.Function1)` on a `https://developer.android.com/reference/androidx/lifecycle/viewmodel/MutableCreationExtras`.

The `https://developer.android.com/reference/androidx/lifecycle/viewmodel/MutableCreationExtras` passed as a receiver to the `https://developer.android.com/reference/androidx/lifecycle/viewmodel/package-summary#CreationExtras(androidx.lifecycle.viewmodel.CreationExtras,kotlin.Function1)` is valid only inside that function. Using it outside of the function produces an unspecified behavior.

### contains

Artifact: [androidx.lifecycle:lifecycle-viewmodel](https://developer.android.com/jetpack/androidx/releases/lifecycle) [View Source](https://cs.android.com/search?q=file:androidx/lifecycle/viewmodel/CreationExtras.kt+function:contains) Added in [2.9.0](https://developer.android.com/jetpack/androidx/releases/lifecycle#2.9.0)

```
public static final boolean contains(
    @NonNull CreationExtras receiver,
    @NonNull CreationExtras.Key<@NonNull ?> key
)
```

Checks if the `https://developer.android.com/reference/androidx/lifecycle/viewmodel/CreationExtras` contains the given `https://developer.android.com/reference/androidx/lifecycle/viewmodel/package-summary#(androidx.lifecycle.viewmodel.CreationExtras).contains(androidx.lifecycle.viewmodel.CreationExtras.Key)`.

This method allows to use the `key in creationExtras` syntax for checking whether an `https://developer.android.com/reference/androidx/lifecycle/viewmodel/package-summary#(androidx.lifecycle.viewmodel.CreationExtras).contains(androidx.lifecycle.viewmodel.CreationExtras.Key)` is contained in the `https://developer.android.com/reference/androidx/lifecycle/viewmodel/CreationExtras`.

### plus

Artifact: [androidx.lifecycle:lifecycle-viewmodel](https://developer.android.com/jetpack/androidx/releases/lifecycle) [View Source](https://cs.android.com/search?q=file:androidx/lifecycle/viewmodel/CreationExtras.kt+function:plus) Added in [2.9.0](https://developer.android.com/jetpack/androidx/releases/lifecycle#2.9.0)

```
public static final @NonNull MutableCreationExtras plus(
    @NonNull CreationExtras receiver,
    @NonNull CreationExtras creationExtras
)
```

Creates a new read-only `https://developer.android.com/reference/androidx/lifecycle/viewmodel/CreationExtras` by replacing or adding entries to `https://developer.android.com/reference/androidx/lifecycle/viewmodel/CreationExtras` extras from another `https://developer.android.com/reference/androidx/lifecycle/viewmodel/package-summary#(androidx.lifecycle.viewmodel.CreationExtras).plus(androidx.lifecycle.viewmodel.CreationExtras)`.

The returned `https://developer.android.com/reference/androidx/lifecycle/viewmodel/CreationExtras` preserves the entry iteration order of the original `https://developer.android.com/reference/androidx/lifecycle/viewmodel/CreationExtras`.

Those entries of another `https://developer.android.com/reference/androidx/lifecycle/viewmodel/package-summary#(androidx.lifecycle.viewmodel.CreationExtras).plus(androidx.lifecycle.viewmodel.CreationExtras)` that are missing in `https://developer.android.com/reference/androidx/lifecycle/viewmodel/CreationExtras` extras are iterated in the end in the order of that `https://developer.android.com/reference/androidx/lifecycle/viewmodel/package-summary#(androidx.lifecycle.viewmodel.CreationExtras).plus(androidx.lifecycle.viewmodel.CreationExtras)`.

### plusAssign

Artifact: [androidx.lifecycle:lifecycle-viewmodel](https://developer.android.com/jetpack/androidx/releases/lifecycle) [View Source](https://cs.android.com/search?q=file:androidx/lifecycle/viewmodel/CreationExtras.kt+function:plusAssign) Added in [2.9.0](https://developer.android.com/jetpack/androidx/releases/lifecycle#2.9.0)

```
public static final void plusAssign(
    @NonNull MutableCreationExtras receiver,
    @NonNull CreationExtras creationExtras
)
```

Appends or replaces all entries from the given `https://developer.android.com/reference/androidx/lifecycle/viewmodel/package-summary#(androidx.lifecycle.viewmodel.MutableCreationExtras).plusAssign(androidx.lifecycle.viewmodel.CreationExtras)` in `https://developer.android.com/reference/androidx/lifecycle/viewmodel/MutableCreationExtras` mutable extras.