首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何通过kotlinpoet生成带有typealias参数的类

如何通过kotlinpoet生成带有typealias参数的类
EN

Stack Overflow用户
提问于 2020-01-27 18:33:20
回答 2查看 203关注 0票数 0

我想生成一个带有typealias的kotlin类定义。

代码语言:javascript
复制
typealias MyAlias = BigDecimal
class TemplateState(var test: MyAlias) {
}

有什么建议吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-01-27 18:43:08

您可以在documentation中找到它

代码语言:javascript
复制
//create a TypeAlias and store it to use the name later
val typeAlias = TypeAliasSpec.builder("MyAlias", BigDecimal::class).build()
val type = TypeSpec.classBuilder("TemplateState").primaryConstructor(
    FunSpec.constructorBuilder().addParameter(
        //You can use the ClassName class to get the typeAlias type
        ParameterSpec.builder("test", ClassName("", typeAlias.name)).build()
    )
).build()
FileSpec.builder("com.example", "HelloWorld")
    .addTypeAlias(typeAlias)
    .addType(type)
    .build()
票数 1
EN

Stack Overflow用户

发布于 2020-01-28 21:09:25

KotlinPoet实际上并不关心ClassName代表的是typealias还是真正的类型。在您的示例中,ClassName("", "MyAlias") (假设在默认包中声明了MyAlias )就足以用作构造函数参数的类型。当然,您需要单独生成typealias以确保生成的代码可以编译。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59929368

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档