【发布时间】:2021-07-08 17:33:19
【问题描述】:
使用 KotlinPoet,为了生成用于向类和构造函数添加属性的 PropertySpec,您需要一个 TypeName 对象。
TypeMirror.asTypeName() KotlinPoet 函数已弃用,因为它并不总是适用于 Kotlin 类型。
但我找不到一个示例,说明如何使用 kotlinpoet-metadata API 为 Kotlin 类(例如 kotlin.String)获取正确的 TypeName,就像弃用消息所说的那样。
kotlinpoet-metadata API 的文档似乎也完全损坏了(转到 https://square.github.io/kotlinpoet/interop-kotlinx-metadata/#interop-with-kotlinx-metadata 并单击 API 部分下的任何内容)
有没有人举例说明如何用一些 kotlinpoet 元数据代码替换 TypeMirror.asTypeName() 以获得 TypeName,以便我可以创建 PropertySpec?
【问题讨论】:
-
您是否事先知道您所指的类,或者该类是由您的注释处理器确定的并且它只能作为 TypeMirror 使用?
-
该类在处理器中作为注释元素提供,所以我只有一个类型镜像。我知道在这种情况下,当前的破损是一个字符串。 asTypeName 总是产生 java.lang.String,但我需要 kotlin.String。
-
概述部分也缺少一个链接:KotlinPoet-metadata-specs
-
当类由注释处理器确定并且只能作为 TypeMirror 使用时,是否有可用的示例?链接似乎是 404。谢谢!
标签: kotlin kapt kotlinpoet