gpt4 book ai didi

kotlin - Kotlin将gson打包成问题

转载 作者:行者123 更新时间:2023-12-02 12:48:26 25 4
gpt4 key购买 nike

我正在使用@parcelize for gson

这是我的课

@Parcelize
data class CommunityModel(@SerializedName("post") val post: PostModel,
@SerializedName("is_liked") val isLiked: Boolean,
@SerializedName("post_like") val postLike: QuestionModel,
@SerializedName("polling_options") val pollingOptions: List<PollingModel>,
@SerializedName("post_polled") val postPolled: Boolean) : Parcelable

我收到错误 Unable to invoke no-args constructor for class. Register an InstanceCreator with Gson for this type may fix this problem.

但是此错误仅出现在 较旧的android版本(低于5.0)上

我尝试实现默认构造函数:
constructor: this(PostModel(), true, QuestionModel(), emptyList(), true)

但是它给了我 java.lang.VerifyError
我在rxjava2和gson转换器中使用Retrofit2版本 2.3

我的Kotlin版本是 1.1.51

它是已知的错误吗?还是我做错了什么?

最佳答案

无参数编译器插件

no-arg编译器插件为具有特定批注的类生成附加的零参数构造函数。

生成的构造函数是合成的,因此无法直接从Java或Kotlin调用,但可以使用反射调用。

尽管从Kotlin或Java的 Angular 来看,它没有零参数构造函数,但它允许Java Persistence API(JPA)实例化数据类(请参阅下面的kotlin-jpa插件说明)。

在Gradle中使用

用法与全开非常相似。

添加插件并指定注释列表,这些注释必须导致为带注释的类生成no-arg构造函数。

buildscript {
dependencies {
classpath "org.jetbrains.kotlin:kotlin-noarg:$kotlin_version"
}
}

apply plugin: "kotlin-noarg"

来源 https://kotlinlang.org/docs/reference/compiler-plugins.html

关于kotlin - Kotlin将gson打包成问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47405337/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com