私はいくつかのjsonを返すバックエンドを持っています。
私はそれを自分のクラスに解析します:
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 を使用して) サーバーからデータを取得します。しかし、次のようなことをする必要があると思ったので、エラーが発生することが予想されました ( notNullableValue
JSON 応答に存在しないため、GSON コンバーターのエラーを防ぐため):
class SomeData @JvmOverloads constructor(
@SerializedName("user_name") val name: String,
@SerializedName("user_city") val city: String,
var notNullableValue: String = "")
データがバックエンドから受信され、def 値のないコンストラクターで SomeData クラスに解析された後、notNullableValue == nullの値。
私が理解しているように、Kotlinではnull許容値をnullにすることはできませんか?