我想生成一个kotlin类定义,这个类实现了一个自定义接口,目标类定义如下:
data class TemplateState(val data: String) : ContractState {
}
Run Code Online (Sandbox Code Playgroud)
除了界面部分,我使用下面的诗人代码生成它,有人可以帮忙吗?
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()
Run Code Online (Sandbox Code Playgroud)
我认为您正在寻找addSuperInterface可以链接到TypeSpec构建器的方法:
TypeSpec.classBuilder("TemplateState")
.addSuperinterface(ClassName("", "ContractState"))
...
Run Code Online (Sandbox Code Playgroud)
如果您有类的包名,则ContractState可以将其添加为ClassName构造函数的第一个参数。或者,如果您可以ContractState直接引用类型,则可以TypeName通过ParameterizedTypeName.get(...)调用创建实例。