Параметр, указанный как ненулевой, является нулевым исключением, при использовании gson в веб-интерфейсе API возвращается ноль - PullRequest
0 голосов
/ 11 сентября 2018

Как запретить gson получать нулевой объект из веб-интерфейса

когда Web API вернет ноль

{"events": null}

станет этим исключением

java.lang.IllegalArgumentException: Parameter specified as non-null is null: method kotlin.jvm.internal.Intrinsics.checkParameterIsNotNull, parameter data

Использование Gson

val data = gson.fromJson(apiRepository
                .doRequest(TheSportDBApi.getLatestMatch(league)),
                MatchResponse::class.java)

Мой класс данных

data class MatchResponse (val events: List<Match>)

Match.class

data class Match(
    @SerializedName("idEvent")
    var eventId: String? = null,

    @SerializedName("strDate")
    var matchDate: String? = null,


    //home
    @SerializedName("strHomeTeam")
    var homeTeam: String? = null,

    @SerializedName("intHomeScore")
    var homeScore: String? = null,

    var homeBadger:String?=null,


    //away
    @SerializedName("strAwayTeam")
    var awayTeam: String? = null,

    @SerializedName("intAwayScore")
    var awayScore: String? = null,

    var awayBadge: String? = null

) * * тысяча двадцать-один

Ответы [ 2 ]

0 голосов
/ 11 сентября 2018

Вы можете сделать этот конкретный объект nullable, используя ? в kotlin

data class Article(
     val title: String, 
     val body: String, 
     val events: Events? = null, //Make it nullable
     val payWall: Boolean = false, 
     val titleImage: String? = null
)
0 голосов
/ 11 сентября 2018

Может ли ваша переменная события класса MatchResponse быть обнуляемой?Что-то вроде:

val event: Event?
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...