android - 如何为 Gson Expose 注释添加支持字段

标签 android kotlin parse-platform gson

公开 - 没有 getter - setter 正在工作

@Expose
    var messageId: String? = null

下面出现错误

This annotation is not applicable to target 'member property without backing field or delegate'

@Expose
    var messageId: String?
        get() = getString(KEY_MESSAGE_ID)
        set(value) = putOrIgnore(KEY_MESSAGE_ID, value)

我需要注释 Expose 才能使用 GsonBuilder().excludeFieldsWithoutExposeAnnotation() 如何在我的属性中使用 Backing 字段?

这是我的模型类:

@ParseClassName(COMPLEX_MESSAGE_OBJ)
class ComplexMessage : ParseObject() {

    companion object {
        const val COMPLEX_MESSAGE_OBJ = "ComplexMessage"
        const val KEY_MESSAGE_ID = "messageId"
    }

    @Expose
    var messageId: String?
        get() = getString(KEY_MESSAGE_ID)
        set(value) = putOrIgnore(KEY_MESSAGE_ID, value)
}

最佳答案

ParseSDK-Android 中所述

下面的代码应该有所帮助。

@Expose
var messageId: String by stringAttribute()

关于android - 如何为 Gson Expose 注释添加支持字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59484721/

相关文章:

ios - 由于 App 传输安全性,Parse-Server 未下载 PFFile

java - @Generated 注解使用 gradlew + dagger

java - 在 EditText 上设置 columnWeight

android - 不同设备上的页面不同

android - 如何为 64 位设备支持我的 flutter 应用程序?

android-studio - 使用 kotlin 在 android 中创建自定义微调器适配器

reflection - 通过反射调用数据类copy()

javascript - Parse.com 通过 Cloud Code 发布到 Twitter

swift - 无法从解析表中检索数据

java - 将 SSL 代码从常规 Java 应用程序转换为适用于 Android 的 SSL 代码