# HasInitWith

# HasInitWith

```
@Incubating interface HasInitWith<T : Any>
```

|----------------------------------------------------------------------------------------------------------------------------------------------|
| [com.android.build.api.dsl.HasInitWith](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/dsl/HasInitWith#) |

|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| Known Direct Subclasses [BaseFlavor](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/dsl/BaseFlavor),[BuildType](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/dsl/BuildType),[ProductFlavor](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/dsl/ProductFlavor) |-----------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | [BaseFlavor](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/dsl/BaseFlavor)       | Shared properties between DSL objects[ProductFlavor](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/dsl/ProductFlavor)and[DefaultConfig](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/dsl/DefaultConfig) | | [BuildType](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/dsl/BuildType)         | Build types define certain properties that Gradle uses when building and packaging your app, and are typically configured for different stages of your development lifecycle.                                                                                                      | | [ProductFlavor](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/dsl/ProductFlavor) | Encapsulates all product flavors properties for this project.                                                                                                                                                                                                                      | |

|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| Known Indirect Subclasses [ApplicationBaseFlavor](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/dsl/ApplicationBaseFlavor),[ApplicationBuildType](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/dsl/ApplicationBuildType),[ApplicationDefaultConfig](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/dsl/ApplicationDefaultConfig),[ApplicationDefaultConfig](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/dsl/ApplicationDefaultConfig),[ApplicationProductFlavor](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/dsl/ApplicationProductFlavor),[ApplicationProductFlavor](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/dsl/ApplicationProductFlavor),[ApplicationProductFlavor](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/dsl/ApplicationProductFlavor),[DefaultConfig](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/dsl/DefaultConfig),[DynamicFeatureBaseFlavor](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/dsl/DynamicFeatureBaseFlavor),[DynamicFeatureBuildType](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/dsl/DynamicFeatureBuildType),[DynamicFeatureDefaultConfig](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/dsl/DynamicFeatureDefaultConfig),[DynamicFeatureDefaultConfig](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/dsl/DynamicFeatureDefaultConfig), and 18 others. |---------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | [ApplicationBaseFlavor](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/dsl/ApplicationBaseFlavor)             | <br />                                                                                                                                                                                                                                                                                                  | | [ApplicationBuildType](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/dsl/ApplicationBuildType)               | Build types define certain properties that Gradle uses when building and packaging your app, and are typically configured for different stages of your development lifecycle.                                                                                                                           | | [ApplicationDefaultConfig](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/dsl/ApplicationDefaultConfig)       | Specifies defaults for properties that the Android application plugin applies to all build variants.                                                                                                                                                                                                    | | [ApplicationDefaultConfig](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/dsl/ApplicationDefaultConfig)       | Specifies defaults for properties that the Android application plugin applies to all build variants.                                                                                                                                                                                                    | | [ApplicationProductFlavor](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/dsl/ApplicationProductFlavor)       | Encapsulates all product flavors properties for application projects.                                                                                                                                                                                                                                   | | [ApplicationProductFlavor](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/dsl/ApplicationProductFlavor)       | Encapsulates all product flavors properties for application projects.                                                                                                                                                                                                                                   | | [ApplicationProductFlavor](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/dsl/ApplicationProductFlavor)       | Encapsulates all product flavors properties for application projects.                                                                                                                                                                                                                                   | | [DefaultConfig](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/dsl/DefaultConfig)                             | Specifies defaults for variant properties that the Android plugin applies to all build variants.                                                                                                                                                                                                        | | [DynamicFeatureBaseFlavor](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/dsl/DynamicFeatureBaseFlavor)       | Shared properties between DSL objects[ProductFlavor](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/dsl/ProductFlavor)and[DefaultConfig](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/dsl/DefaultConfig)for dynamic features. | | [DynamicFeatureBuildType](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/dsl/DynamicFeatureBuildType)         | Build types define certain properties that Gradle uses when building and packaging your app, and are typically configured for different stages of your development lifecycle.                                                                                                                           | | [DynamicFeatureDefaultConfig](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/dsl/DynamicFeatureDefaultConfig) | Specifies defaults for properties that the Android dynamic-feature plugin applies to all build variants.                                                                                                                                                                                                | | [DynamicFeatureDefaultConfig](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/dsl/DynamicFeatureDefaultConfig) | Specifies defaults for properties that the Android dynamic-feature plugin applies to all build variants.                                                                                                                                                                                                | | [DynamicFeatureProductFlavor](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/dsl/DynamicFeatureProductFlavor) | Encapsulates all product flavors properties for dynamic feature projects.                                                                                                                                                                                                                               | | [DynamicFeatureProductFlavor](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/dsl/DynamicFeatureProductFlavor) | Encapsulates all product flavors properties for dynamic feature projects.                                                                                                                                                                                                                               | | [DynamicFeatureProductFlavor](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/dsl/DynamicFeatureProductFlavor) | Encapsulates all product flavors properties for dynamic feature projects.                                                                                                                                                                                                                               | | [LibraryBaseFlavor](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/dsl/LibraryBaseFlavor)                     | <br />                                                                                                                                                                                                                                                                                                  | | [LibraryBuildType](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/dsl/LibraryBuildType)                       | Build types define certain properties that Gradle uses when building and packaging your library, and are typically configured for different stages of your development lifecycle.                                                                                                                       | | [LibraryDefaultConfig](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/dsl/LibraryDefaultConfig)               | Specifies defaults for properties that the Android library plugin applies to all build variants.                                                                                                                                                                                                        | | [LibraryDefaultConfig](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/dsl/LibraryDefaultConfig)               | Specifies defaults for properties that the Android library plugin applies to all build variants.                                                                                                                                                                                                        | | [LibraryProductFlavor](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/dsl/LibraryProductFlavor)               | Encapsulates all product flavors properties for library projects.                                                                                                                                                                                                                                       | | [LibraryProductFlavor](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/dsl/LibraryProductFlavor)               | Encapsulates all product flavors properties for library projects.                                                                                                                                                                                                                                       | | [LibraryProductFlavor](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/dsl/LibraryProductFlavor)               | Encapsulates all product flavors properties for library projects.                                                                                                                                                                                                                                       | | [ProductFlavor](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/dsl/ProductFlavor)                             | Encapsulates all product flavors properties for this project.                                                                                                                                                                                                                                           | | [TestBaseFlavor](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/dsl/TestBaseFlavor)                           | <br />                                                                                                                                                                                                                                                                                                  | | [TestBuildType](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/dsl/TestBuildType)                             | Build types define certain properties that Gradle uses when building and packaging your library, and are typically configured for different stages of your development lifecycle.                                                                                                                       | | [TestDefaultConfig](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/dsl/TestDefaultConfig)                     | Specifies defaults for properties that the Android test plugin applies to all build variants.                                                                                                                                                                                                           | | [TestDefaultConfig](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/dsl/TestDefaultConfig)                     | Specifies defaults for properties that the Android test plugin applies to all build variants.                                                                                                                                                                                                           | | [TestProductFlavor](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/dsl/TestProductFlavor)                     | Encapsulates all product flavors properties for test projects.                                                                                                                                                                                                                                          | | [TestProductFlavor](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/dsl/TestProductFlavor)                     | Encapsulates all product flavors properties for test projects.                                                                                                                                                                                                                                          | | [TestProductFlavor](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/dsl/TestProductFlavor)                     | Encapsulates all product flavors properties for test projects.                                                                                                                                                                                                                                          | |

For build types and product flavors, they can be initialized from the current state of another.

This can be useful to save repeating configuration in the build file when two build types or flavors should be almost identical.

Custom extensions attached to build type and product flavor should implement this, so that they can also be initialized when Android Gradle plugin initialized the build type or product flavor too. Note that this will only work with Android Gradle Plugin 7.1 or higher, for older versions this will have no effect.

## Summary

|                                                                                                                                                                      ### Public methods                                                                                                                                                                       ||
|--------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| abstract[Unit](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html) | [initWith](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/dsl/HasInitWith#initWith(com.android.build.api.dsl.HasInitWith.T))`(`that:` `T`)` Copy the properties of the given build type, product flavor or custom extension to this |

## Public methods

### initWith

```
abstract fun initWith(that: T): Unit
```

Copy the properties of the given build type, product flavor or custom extension to this