Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Kotlinpoet如何添加内部对象类定义?_Kotlin_Code Generation_Kotlinpoet - Fatal编程技术网

Kotlinpoet如何添加内部对象类定义?

Kotlinpoet如何添加内部对象类定义?,kotlin,code-generation,kotlinpoet,Kotlin,Code Generation,Kotlinpoet,我试图在类内部生成一个对象定义。这是一个经过提炼的版本: class SomeClass { // need to figure out how to generate this companion object { // and this object Constants { val SOME_CONSTANT = "CONSTANT VALUE" } } } 您可以使用TypeSpec.objecBuilder创建

我试图在类内部生成一个对象定义。这是一个经过提炼的版本:

class SomeClass {

   // need to figure out how to generate this
   companion object {

      // and this
      object Constants {
         val SOME_CONSTANT = "CONSTANT VALUE"
      }
   }
}
您可以使用TypeSpec.objecBuilder创建对象,然后将其嵌套在具有addType的类中,例如:

val constants = TypeSpec.objectBuilder("Constants")
        .addProperty(PropertySpec.builder("SOME_CONSTANT", String::class)
                .mutable(false)
                .initializer("CONSTANT VALUE")
                .build())
        .build()

val someClass = TypeSpec.classBuilder("SomeClass")
        .addType(constants)
        .build()

将object更改为companion object我假设它应该是静态的,因此在companion object{}内,但是,我仍然希望在companion object内生成object Constants块。这允许我的常量使用名称空间。将更新代码块以反映这一点。谢谢,这正是我想要的。希望kotlinpoet自述中能更好地记录这些细微差别。很可能会用这个例子做一个PR看起来它实际上已经在自述文件中了,只是没有一个输出例子。我的错是,应该读得更透彻一些。单元测试也是一个很好的地方,在那里我发现了一些类似的东西。