J'ai backend qui me renvoie un peu de json.Kotlin non nullable peut être nulle?
Je Parse à ma classe:
class SomeData(
@SerializedName("user_name") val name: String,
@SerializedName("user_city") val city: String,
var notNullableValue: String)
Utilisez l'usine de conversion de gson:
Retrofit retrofit = new Retrofit.Builder()
.baseUrl(ENDPOINT)
.client(okHttpClient)
.addConverterFactory(GsonConverterFactory.create(gson))
.addCallAdapterFactory(RxJava2CallAdapterFactory.create())
.build();
Et dans mon interface:
interface MyAPI {
@GET("get_data")
Observable<List<SomeData>> getSomeData();
}
Puis-je récupérer des données à partir du serveur (avec rxJava) sans aucune erreur. Mais je m'y attendais une erreur parce que je pensais que je devais faire quelque chose comme ça (pour éviter les erreurs de conversion GSON, car notNullableValue
n'est pas présent dans ma réponse JSON):
class SomeData @JvmOverloads constructor(
@SerializedName("user_name") val name: String,
@SerializedName("user_city") val city: String,
var notNullableValue: String = "")
Une fois les données reçues de back-end et analysé à mon Classe SomeData avec constructeur sans valeur def, la valeur de notNullableValue == null.
Comme je comprends pas la valeur nullable peut être nulle dans Kotlin?
S'il vous plaît voir si cela aide: https://stackoverflow.com/a/39963353/2196460 – hotkey
Son expliquer situation avec valeur def dans le constructeur. Mais dans ma situation, je n'ai pas de valeur. – jQuick
le 'notNullableValue' a été modifié par gson après avoir été créé. parce que c'est 'var' pas' val'. –