# NavType.SerializableType

Artifact: [androidx.navigation:navigation-common](https://developer.android.com/jetpack/androidx/releases/navigation) [View Source](https://cs.android.com/search?q=file:androidx/navigation/NavType.android.kt+class:androidx.navigation.NavType.SerializableType) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/navigation#1.0.0)

*** ** * ** ***


```
public class NavType.SerializableType<D extends Serializable> extends NavType<@NonNull D>
```

<br />

|---|---|---|
| [java.lang.Object](https://developer.android.com/reference/java/lang/Object.html) |||
| ↳ | [androidx.navigation.NavType](https://developer.android.com/reference/androidx/navigation/NavType)\<@[NonNull](https://developer.android.com/reference/androidx/annotation/NonNull) D\> ||
|   | ↳ | [androidx.navigation.NavType.SerializableType](https://developer.android.com/reference/androidx/navigation/NavType.SerializableType) |

Known direct subclasses [NavType.EnumType](https://developer.android.com/reference/androidx/navigation/NavType.EnumType)

|---|---|
| `https://developer.android.com/reference/androidx/navigation/NavType.EnumType` | EnumType is used for `https://developer.android.com/reference/androidx/navigation/NavArgument`s holding enum values. |

*** ** * ** ***

SerializableType is used for Serializable `https://developer.android.com/reference/androidx/navigation/NavArgument`s. For handling Enums you must use `https://developer.android.com/reference/androidx/navigation/NavType.EnumType` instead.

Null values are supported. Default values in Navigation XML files are not supported.

| See also |
|---|---|
| `https://developer.android.com/reference/androidx/navigation/NavType.EnumType` |   |

## Summary

| ### Public constructors |
|---|
| `<D extends https://developer.android.com/reference/java/io/Serializable.html> https://developer.android.com/reference/androidx/navigation/NavType.SerializableType#SerializableType(java.lang.Class)(@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/lang/Class.html<@https://developer.android.com/reference/androidx/annotation/NonNull D> type)` Constructs a NavType that supports a given Serializable type. |

| ### Public methods |
|---|---|
| `boolean` | `https://developer.android.com/reference/androidx/navigation/NavType.SerializableType#equals(kotlin.Any)(https://developer.android.com/reference/java/lang/Object.html other)` |
| `D` | `https://developer.android.com/reference/androidx/navigation/NavType.SerializableType#get(android.os.Bundle,kotlin.String)(@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/android/os/Bundle.html bundle, @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/lang/String.html key)` Get a value of this type from the `savedState` |
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/lang/String.html` | `https://developer.android.com/reference/androidx/navigation/NavType.SerializableType#getName()()` The name of this type. |
| `int` | `https://developer.android.com/reference/androidx/navigation/NavType.SerializableType#hashCode()()` |
| `@https://developer.android.com/reference/androidx/annotation/NonNull D` | `https://developer.android.com/reference/androidx/navigation/NavType.SerializableType#parseValue(kotlin.String)(@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/lang/String.html value)` |
| `void` | `https://developer.android.com/reference/androidx/navigation/NavType.SerializableType#put(android.os.Bundle,kotlin.String,java.io.Serializable)(@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/android/os/Bundle.html bundle, @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/lang/String.html key, @https://developer.android.com/reference/androidx/annotation/NonNull D value)` Put a value of this type in the `savedState` |

### Inherited methods

From [androidx.navigation.NavType](https://developer.android.com/reference/androidx/navigation/NavType) `boolean` `https://developer.android.com/reference/androidx/navigation/NavType#isNullableAllowed()()`

Check if an argument with this type can hold a null value.
`@https://developer.android.com/reference/androidx/annotation/NonNull D` `https://developer.android.com/reference/androidx/navigation/NavType#parseValue(kotlin.String,kotlin.Any)(@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/lang/String.html value, @https://developer.android.com/reference/androidx/annotation/NonNull D previousValue)`

Parse a value of this type from a String and then combine that parsed value with the given previousValue of the same type to provide a new value that contains both the new and previous value.
`@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/lang/String.html` `https://developer.android.com/reference/androidx/navigation/NavType#serializeAsValue(kotlin.Any)(@https://developer.android.com/reference/androidx/annotation/NonNull D value)`

Serialize a value of this NavType into a String.
`@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/lang/String.html` `https://developer.android.com/reference/androidx/navigation/NavType#toString()()` `boolean` `https://developer.android.com/reference/androidx/navigation/NavType#valueEquals(kotlin.Any,kotlin.Any)(@https://developer.android.com/reference/androidx/annotation/NonNull D value, @https://developer.android.com/reference/androidx/annotation/NonNull D other)`

Compares two values of type `https://developer.android.com/reference/androidx/navigation/NavType` and returns true if values are equal.

## Public constructors

### SerializableType

```
public <D extends Serializable> SerializableType(@NonNull Class<@NonNull D> type)
```

Constructs a NavType that supports a given Serializable type.

| Parameters |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/lang/Class.html<@https://developer.android.com/reference/androidx/annotation/NonNull D> type` | class that is a subtype of Serializable |

## Public methods

### equals

```
public boolean equals(Object other)
```

### get

```
public D get(@NonNull Bundle bundle, @NonNull String key)
```

Get a value of this type from the `savedState`

| Parameters |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/android/os/Bundle.html bundle` | savedState to get value from |
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/lang/String.html key` | savedState key |

| Returns |
|---|---|
| `D` | value of this type |

### getName

```
public @NonNull String getName()
```

The name of this type.

This is the same value that is used in Navigation XML `argType` attribute.

| Returns |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/lang/String.html` | name of this type |

### hashCode

```
public int hashCode()
```

### parseValue

```
public @NonNull D parseValue(@NonNull String value)
```

| Throws |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unsupported-operation-exception/index.html` | since Serializables do not support default values |

### put

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

```
public void put(@NonNull Bundle bundle, @NonNull String key, @NonNull D value)
```

Put a value of this type in the `savedState`

| Parameters |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/android/os/Bundle.html bundle` | savedState to put value in |
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/lang/String.html key` | savedState key |
| `@https://developer.android.com/reference/androidx/annotation/NonNull D value` | value of this type |