问题标签 [kotlinpoet]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - Kotlin/KAPT 生成的 Kotlin 类不被识别为类成员,但它在方法内部
我已经编写了一个注释处理器,它为我的类生成一个构建器类@DataBuilder
我用这个注释注释的类位于com.my.package.model
包中,生成的构建器类也位于同一个包com.my.package.model
中,但是在生成的目录中,当然build/generated/source/kapt/debug/com/my/package/model/MyModelBuilder.kt
,我可以在我的模型类中使用这些生成的类(用 Kotlin 编写)
但是我不能在 java 类中使用生成的MyModelBuilder
Kotlin 类作为类成员
Android Studio 可以识别该类,但我遇到了这个编译问题
这很奇怪,因为我只能在方法内部使用这个生成的构建器类,这段代码编译得很好:
这里有人可以帮助我理解这种行为以及如何解决这个问题吗?提前,谢谢!
更新
我刚刚使用必要的代码创建了这个 repo 来复制问题 https://github.com/epool/HelloKapt
该项目在克隆和运行后工作正常,要复制问题,请取消注释此行https://github.com/epool/HelloKapt/blob/master/app/src/main/java/com/nearsoft/hellokapt/app /MainActivity.java#L13
注意:如果我将 MainActivity.java 类转换为 Kotlin(MainActivity.kt) 问题是不可重现的并且工作正常,但由于到目前为止的一些项目限制,我不想这样做
kotlinpoet - 如何动态定义带参数的代码块
我被这个特性卡住了,下面是要生成的预期代码,参数的总数不是一个固定的数字,可能有 2 个,或者 3 个或更多。
val 实例:InstanceType = Instance(parameter1, parameter2)
这是在一个函数中,所以我只知道我应该使用 .addCode(CodeBlock.of("%L", PropertySpec))
但是我没有找到一种方法来定义需要传入动态参数的代码块。有什么建议吗?
android - 如何在kotlin诗人中返回函数
我正在使用 KotlinPoet 进行注释处理,但我遇到了一个问题。我需要在生成的类中返回函数,但我不确定 KotlinPoet 能做到吗?如果你有一些经验,请帮助我。
我能做到的:
我需要做的
kotlin - Kotlinpoet 如何添加内部对象类定义?
我正在尝试在类中生成对象定义。这是一个提炼的版本:
kotlin - 如何获取 javax.lang.model.element.Element 实例的类型
我正在关注Kotlin和KotlinPoet 文档中的 Hello World of Annotation Processing,并尝试为 Kotlin 实现一个通用构建器。我想一般为带注释的数据类中的每个字段创建一个方法,并为其参数提供与字段相同的名称和类型。问题是,鉴于我拥有的实例,我无法找到该字段的类型。这是我到目前为止所管理的:javax.lang.model.element.Element
如何找到字段的类型?我在文档中读到您应该使用方法asType()
,但这会返回一个TypeMirror
. 我真的不知道如何从这里继续。欢迎任何建议。
kotlinpoet - 如何将函数参数强制到新行上?
我希望在新行上生成所有函数参数,如下所示:
我怎样才能做到这一点?目前参数列表任意换行。我有未知数量的函数参数要生成。
java - java.lang.NoSuchMethodError:com.squareup.kotlinpoet.PropertySpec$Companion.varBuilder
我正在尝试将此第三方添加到我的项目中,该第三方使用带有 kotlinpoet 的注释处理来为 firebase 或任何分析工具上的日志用户事件生成分析类,但我遇到了这个问题
这是我的 gradle 文件
应用程序构建 gradle
项目构建gradle
渐变属性
请记住,我正在尝试将这个第三方女巫添加到我的项目中,在其他项目上工作正常,但在我的项目上没有工作。
kotlin - How do I generate a class which extends a class which implements a generic interface using kotlinpoet
Given an interface like
How do I generate a class BooBuilder
which implements this interface using kotlinpoet.
I couldn't find an example on creating a generic interface (or class) in the documentation.
what I would like would start with
I understand that I should start with