使用代码生成的moshi适配器进行改造2

时间:2019-07-11 06:38:43

标签: android kotlin retrofit2 moshi

我想在翻新2中使用Moshi代码源。下面的代码生成FooJsonAdapter

@JsonClass(generateAdapter=true)
data class Foo(val name: String)

产生

class FooJsonAdapter(moshi: Moshi) : JsonAdapter<Foo>() { // details are omitted
    private val options: JsonReader.Options
    private val stringAdapter: JsonAdapter<String>

    override fun toString(): String
    override fun fromJson(reader: JsonReader): Foo
    override fun toJson(writer: JsonWriter, value: Foo?)
}

我想使用此生成的适配器进行翻新,但是MoshiConverterFactory.create的输入参数必须为Moshi   对象,而不是JsonAdapter。如何将生成的适配器(或自定义适配器)用于Retrofit2?

<>

val moshi = Moshi.Builder().add(
    FooJsonAdapter(
        Moshi.Builder().build()
    )
).build()

此代码失败

    java.lang.RuntimeException: Unable to start activity ComponentInfo{com.android.bootcamp/com.android.bootcamp.MainActivity}: java.lang.IllegalArgumentException: Expected at least one @ToJson or @FromJson method on com.android.bootcamp.model.FooJsonAdapter

代码生成正常吗?

0 个答案:

没有答案