3

我想生成一个kotlin类定义,这个类实现了一个自定义的接口,目标类定义如下:

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()
4

1 回答 1

5

我认为您正在寻找addSuperInterface可以链接到TypeSpec构建器的方法:

TypeSpec.classBuilder("TemplateState")
        .addSuperinterface(ClassName("", "ContractState"))
        ...

如果您有ContractState该类的包名,则可以将其添加为ClassName构造函数的第一个参数。或者,如果您可以ContractState直接引用类型,则可以通过调用创建TypeName实例。ParameterizedTypeName.get(...)

于 2018-04-22T09:56:02.780 回答