android - Kotlin 中使用 GsonTypeAdapter 的 AutoValue

标签 android kotlin gson

我正在尝试将 Kotlin 集成到现有的 android Java 项目中。在构建中进行更改并将 Kotlin 添加到项目后,我找不到针对具有 GsonTypeAdapterAutoValue 类的解决方案' 似乎是对此的支持。

    @AutoValue
    public abstract class MediaObject implements Parcelable {

    public static TypeAdapter<MediaObject> typeAdapter(Gson gson) {
        return new AutoValue_MediaObject.GsonTypeAdapter(gson);
    }

    @SerializedName("mimetype")
    public abstract String getMimeType();

    @SerializedName("url")
    public abstract String getUri();
}

我的 Gson 构建器:

GsonBuilder().registerTypeAdapterFactory(new AutoValueGsonTypeAdapterFactory())

对如何解决这个问题或使用什么有什么建议吗?

最佳答案

只是不要使用它。如果是 Retrofit,您可以只使用 .addConverterFactory(GsonConverterFactory.create()) 和 kotlin 数据类。在您的情况下,您需要删除 MediaObject java 类,并创建数据类:

data class MediaObject(
    @SerializedName("mimetype")
    val mimetypeString:String,

    @SerializedName("url")
    val uri:String)

关于android - Kotlin 中使用 GsonTypeAdapter 的 AutoValue,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47159328/

相关文章:

android - 如何解决 "No Activity found to handle Intent"错误

android - 具有用于不同gradle任务的不同Android lintOptions

intellij-idea - Intellij 未发现 Kotlin 测试

gradle - 如何使用 gradle kotlin-dsl 添加新的源集

ios - JSON 序列化卡住了 UI

android - 将 Retrofit RestAdapter.LogLevel 设置为 FULL 以外的任何值都会导致 Empty Response Body

android - 在方向改变时重新启动应用程序(Oncreate)

java - 使用java将gson转换为对象

java - 如何使用 GSon 公开方法?

android - 如何从数组列表中动态添加多段线