私にバックスンが戻ってきました。nullではなくnull値はnullにできますか?
私は私のクラスにそれを解析:
class SomeData(
@SerializedName("user_name") val name: String,
@SerializedName("user_city") val city: String,
var notNullableValue: String)
使用gsonコンバータ工場:
Retrofit retrofit = new Retrofit.Builder()
.baseUrl(ENDPOINT)
.client(okHttpClient)
.addConverterFactory(GsonConverterFactory.create(gson))
.addCallAdapterFactory(RxJava2CallAdapterFactory.create())
.build();
そして、私のインタフェースで:
interface MyAPI {
@GET("get_data")
Observable<List<SomeData>> getSomeData();
}
をそれから私が(サーバーからデータを取得しますrxJavaで)エラーなし。データがバックエンドから受け取ったと私に解析された後
class SomeData @JvmOverloads constructor(
@SerializedName("user_name") val name: String,
@SerializedName("user_city") val city: String,
var notNullableValue: String = "")
:私はこれ(notNullableValue
が私のJSONレスポンスに存在しないため、GSONコンバータエラーを回避するための)ような何かをしなければならないと思ったので、しかし、私はエラーを予想しましたSomeDataクラスはdef値を持たないコンストラクタを持ち、の値はnotNullableValue == nullです。
私はnullableでないことを理解しているので、Kotlinではnullにすることができますか?
これが役立つかどうかを確認してください:https://stackoverflow.com/a/39963353/2196460 – hotkey
説明コンストラクタでdef値を持つ状況。しかし、私の状況では私はdef値を持っていません。 – jQuick
'notNullableValue'は作成後にgsonによって変更されました。それは 'val'ではなく' var'であるからです。 –