xref: /aosp_15_r20/external/kotlinpoet/docs/objects.md (revision 3c321d951dd070fb96f8ba59e952ffc3131379a0)
1Objects
2=======
3
4KotlinPoet supports objects:
5
6```kotlin
7val helloWorld = TypeSpec.objectBuilder("HelloWorld")
8  .addProperty(
9    PropertySpec.builder("buzz", String::class)
10      .initializer("%S", "buzz")
11      .build()
12  )
13  .addFunction(
14    FunSpec.builder("beep")
15      .addStatement("println(%S)", "Beep!")
16      .build()
17  )
18  .build()
19```
20
21Similarly, you can create companion objects and add them to classes using `addType()`:
22
23```kotlin
24val companion = TypeSpec.companionObjectBuilder()
25  .addProperty(
26    PropertySpec.builder("buzz", String::class)
27      .initializer("%S", "buzz")
28      .build()
29  )
30  .addFunction(
31    FunSpec.builder("beep")
32      .addStatement("println(%S)", "Beep!")
33      .build()
34  )
35  .build()
36
37val helloWorld = TypeSpec.classBuilder("HelloWorld")
38  .addType(companion)
39  .build()
40```
41
42You can provide an optional name for a companion object.
43