# ExtendableBuilder

Artifact: [androidx.camera:camera-core](https://developer.android.com/jetpack/androidx/releases/camera) [View Source](https://cs.android.com/search?q=file:androidx/camera/core/ExtendableBuilder.java+class:androidx.camera.core.ExtendableBuilder) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/camera#1.0.0)

*** ** * ** ***


```
public interface ExtendableBuilder<T>
```

<br />

Known direct subclasses [CaptureRequestOptions.Builder](https://developer.android.com/reference/androidx/camera/camera2/interop/CaptureRequestOptions.Builder), [ImageAnalysis.Builder](https://developer.android.com/reference/androidx/camera/core/ImageAnalysis.Builder), [ImageCapture.Builder](https://developer.android.com/reference/androidx/camera/core/ImageCapture.Builder), [Preview.Builder](https://developer.android.com/reference/androidx/camera/core/Preview.Builder), [VideoCapture.Builder](https://developer.android.com/reference/androidx/camera/video/VideoCapture.Builder)

|---|---|
| `https://developer.android.com/reference/androidx/camera/camera2/interop/CaptureRequestOptions.Builder` | **This class is deprecated.** Use the camera2Interop or applyCamera2Interop extension functions instead, e.g., 'builder.camera2Interop { setCaptureRequestOption(key, value) }'. |
| `https://developer.android.com/reference/androidx/camera/core/ImageAnalysis.Builder` | Builder for a `https://developer.android.com/reference/androidx/camera/core/ImageAnalysis`. |
| `https://developer.android.com/reference/androidx/camera/core/ImageCapture.Builder` | Builder for an `https://developer.android.com/reference/androidx/camera/core/ImageCapture`. |
| `https://developer.android.com/reference/androidx/camera/core/Preview.Builder` | Builder for a `https://developer.android.com/reference/androidx/camera/core/Preview`. |
| `https://developer.android.com/reference/androidx/camera/video/VideoCapture.Builder` | Builder for a `https://developer.android.com/reference/androidx/camera/video/VideoCapture`. |

*** ** * ** ***

Extendable builders are used to add externally defined options that can be passed to the implementation being built.

| Parameters |
|---|---|
| `<T>` | the type being built by this builder. |

## Summary

| ### Public methods |
|---|---|
| `abstract @https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html T` | `https://developer.android.com/reference/androidx/camera/core/ExtendableBuilder#build()()` Creates an instance of the object that this builder produces. |

## Public methods

### build

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

```
abstract @NonNull T build()
```

Creates an instance of the object that this builder produces.