xref: /aosp_15_r20/external/kotlinpoet/docs/parameters.md (revision 3c321d951dd070fb96f8ba59e952ffc3131379a0)
1*3c321d95SSadaf EbrahimiParameters
2*3c321d95SSadaf Ebrahimi==========
3*3c321d95SSadaf Ebrahimi
4*3c321d95SSadaf EbrahimiDeclare parameters on methods and constructors with either `ParameterSpec.builder()` or
5*3c321d95SSadaf Ebrahimi`FunSpec`'s convenient `addParameter()` API:
6*3c321d95SSadaf Ebrahimi
7*3c321d95SSadaf Ebrahimi```kotlin
8*3c321d95SSadaf Ebrahimival android = ParameterSpec.builder("android", String::class)
9*3c321d95SSadaf Ebrahimi  .defaultValue("\"pie\"")
10*3c321d95SSadaf Ebrahimi  .build()
11*3c321d95SSadaf Ebrahimi
12*3c321d95SSadaf Ebrahimival welcomeOverlords = FunSpec.builder("welcomeOverlords")
13*3c321d95SSadaf Ebrahimi  .addParameter(android)
14*3c321d95SSadaf Ebrahimi  .addParameter("robot", String::class)
15*3c321d95SSadaf Ebrahimi  .build()
16*3c321d95SSadaf Ebrahimi```
17*3c321d95SSadaf Ebrahimi
18*3c321d95SSadaf EbrahimiThe code above generates:
19*3c321d95SSadaf Ebrahimi
20*3c321d95SSadaf Ebrahimi```kotlin
21*3c321d95SSadaf Ebrahimifun welcomeOverlords(android: String = "pie", robot: String) {
22*3c321d95SSadaf Ebrahimi}
23*3c321d95SSadaf Ebrahimi```
24*3c321d95SSadaf Ebrahimi
25*3c321d95SSadaf EbrahimiThe extended `Builder` form is necessary when the parameter has annotations (such as `@Inject`).
26