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