# TypeConverters

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

*** ** * ** ***


```
@Target(allowedTargets = [AnnotationTarget.FUNCTION, AnnotationTarget.VALUE_PARAMETER, AnnotationTarget.FIELD, AnnotationTarget.CLASS])
@Retention(value = AnnotationRetention.BINARY)
public annotation TypeConverters
```

<br />

*** ** * ** ***

Specifies additional type converters that Room can use. The TypeConverter is added to the scope of the element so if you put it on a class / interface, all methods / fields in that class will be able to use the converters.

TypeConverters can only be used to convert columns / fields, hence cannot be used by a method with a row return value such as DAO methods that query rows.

- If you put it on a `https://developer.android.com/reference/androidx/room/Database`, all Daos and Entities in that database will be able to use it.

- If you put it on a `https://developer.android.com/reference/androidx/room/Dao`, all methods in the Dao will be able to use it.

- If you put it on an `https://developer.android.com/reference/androidx/room/Entity`, all fields of the Entity will be able to use it.

- If you put it on a POJO, all fields of the POJO will be able to use it.

- If you put it on an `https://developer.android.com/reference/androidx/room/Entity` field, only that field will be able to use it.

- If you put it on a `https://developer.android.com/reference/androidx/room/Dao` method, all parameters of the method will be able to use it.

- If you put it on a `https://developer.android.com/reference/androidx/room/Dao` method parameter, just that field will be able to use it.

| See also |
|---|---|
| `https://developer.android.com/reference/androidx/room/TypeConverter` |   |

## Summary

| ### Public methods |
|---|---|
| `final @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/room/BuiltInTypeConverters` | `https://developer.android.com/reference/androidx/room/TypeConverters#getBuiltInTypeConverters()()` Configure whether Room can use various built in converters for common types. |
| `final @https://developer.android.com/reference/androidx/annotation/NonNull KClass[]` | `https://developer.android.com/reference/androidx/room/TypeConverters#getValue()()` The list of type converter classes. |

## Public methods

### getBuiltInTypeConverters

```
public final @NonNull BuiltInTypeConverters getBuiltInTypeConverters()
```

Configure whether Room can use various built in converters for common types. See `https://developer.android.com/reference/androidx/room/BuiltInTypeConverters` for details.

### getValue

```
public final @NonNull KClass[] getValue()
```

The list of type converter classes. If converter methods are not static, Room will create an instance of these classes.

| Returns |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/NonNull KClass[]` | The list of classes that contains the converter methods. |