如何通过 kotlinpoet 生成带有自定义界面的 class
How to generate a class with a custom interface via kotlinpoet
我想生成一个kotlin class定义,这个class实现了一个自定义接口,目标class定义如下:
data class TemplateState(val data: String) : ContractState {
}
除了界面部分,我用下面的诗人代码生成了它,有人可以帮忙吗?
val file = FileSpec.builder("com.template", "StatesAndContracts")
.addType(TypeSpec.classBuilder("TemplateState")
.addModifiers(KModifier.DATA)
.primaryConstructor(FunSpec.constructorBuilder()
.addParameter("data", String::class)
.build())
.addProperty(PropertySpec.builder("data", String::class)
.initializer("data")
.build())
.build())
.build()
我认为您正在寻找 addSuperInterface
方法,您可以将其链接到 TypeSpec
生成器:
TypeSpec.classBuilder("TemplateState")
.addSuperinterface(ClassName("", "ContractState"))
...
如果您有 ContractState
class 的包名称,您可以将其添加为 ClassName
构造函数的第一个参数。或者,如果您可以直接引用 ContractState
类型,则可以通过 ParameterizedTypeName.get(...)
调用创建 TypeName
实例。
我想生成一个kotlin class定义,这个class实现了一个自定义接口,目标class定义如下:
data class TemplateState(val data: String) : ContractState {
}
除了界面部分,我用下面的诗人代码生成了它,有人可以帮忙吗?
val file = FileSpec.builder("com.template", "StatesAndContracts")
.addType(TypeSpec.classBuilder("TemplateState")
.addModifiers(KModifier.DATA)
.primaryConstructor(FunSpec.constructorBuilder()
.addParameter("data", String::class)
.build())
.addProperty(PropertySpec.builder("data", String::class)
.initializer("data")
.build())
.build())
.build()
我认为您正在寻找 addSuperInterface
方法,您可以将其链接到 TypeSpec
生成器:
TypeSpec.classBuilder("TemplateState")
.addSuperinterface(ClassName("", "ContractState"))
...
如果您有 ContractState
class 的包名称,您可以将其添加为 ClassName
构造函数的第一个参数。或者,如果您可以直接引用 ContractState
类型,则可以通过 ParameterizedTypeName.get(...)
调用创建 TypeName
实例。