12

私はいくつかの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 を使用して) サーバーからデータを取得します。しかし、次のようなことをする必要があると思ったので、エラーが発生することが予想されました ( notNullableValueJSON 応答に存在しないため、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にすることはできませんか?

4

2 に答える 2