[英]How to create constructor for data class in Kotlin Android?
如何在 Kotlin Android 中為數據類創建構造函數?
data class EventItem(
@SerializedName("dateEvent")
val dateEvent: String,
@SerializedName("dateEventLocal")
val dateEventLocal: Any,
@SerializedName("idAwayTeam")
val idAwayTeam: String,
@SerializedName("idEvent")
val idEvent: String,
@SerializedName("idHomeTeam")
val idHomeTeam: String,
@SerializedName("idLeague")
val idLeague: String,
@SerializedName("idSoccerXML")
val idSoccerXML: String,
@SerializedName("intAwayScore")
val intAwayScore: Any,
@SerializedName("intAwayShots")
val intAwayShots: Any,
@SerializedName("intHomeScore")
val intHomeScore: Any,
@SerializedName("intHomeShots")
val intHomeShots: Any,
@SerializedName("intRound")
val intRound: String,
@SerializedName("intSpectators")
val intSpectators: Any,
@SerializedName("strAwayFormation")
val strAwayFormation: Any,
@SerializedName("strAwayGoalDetails")
val strAwayGoalDetails: String,
@SerializedName("strAwayLineupDefense")
val strAwayLineupDefense: String,
@SerializedName("strAwayLineupForward")
val strAwayLineupForward: String,
@SerializedName("strAwayLineupGoalkeeper")
val strAwayLineupGoalkeeper: String,
@SerializedName("strAwayLineupMidfield")
val strAwayLineupMidfield: String,
@SerializedName("strAwayLineupSubstitutes")
val strAwayLineupSubstitutes: String,
@SerializedName("strAwayRedCards")
val strAwayRedCards: String,
@SerializedName("strAwayTeam")
val strAwayTeam: String,
@SerializedName("strAwayYellowCards")
val strAwayYellowCards: String,
@SerializedName("strBanner")
val strBanner: Any,
@SerializedName("strCircuit")
val strCircuit: Any,
@SerializedName("strCity")
val strCity: Any,
@SerializedName("strCountry")
val strCountry: Any,
@SerializedName("strDate")
val strDate: String,
@SerializedName("strDescriptionEN")
val strDescriptionEN: Any,
@SerializedName("strEvent")
val strEvent: String,
@SerializedName("strEventAlternate")
val strEventAlternate: String,
@SerializedName("strFanart")
val strFanart: Any,
@SerializedName("strFilename")
val strFilename: String,
@SerializedName("strHomeFormation")
val strHomeFormation: Any,
@SerializedName("strHomeGoalDetails")
val strHomeGoalDetails: String,
@SerializedName("strHomeLineupDefense")
val strHomeLineupDefense: String,
@SerializedName("strHomeLineupForward")
val strHomeLineupForward: String,
@SerializedName("strHomeLineupGoalkeeper")
val strHomeLineupGoalkeeper: String,
@SerializedName("strHomeLineupMidfield")
val strHomeLineupMidfield: String,
@SerializedName("strHomeLineupSubstitutes")
val strHomeLineupSubstitutes: String,
@SerializedName("strHomeRedCards")
val strHomeRedCards: String,
@SerializedName("strHomeTeam")
val strHomeTeam: String,
@SerializedName("strHomeYellowCards")
val strHomeYellowCards: String,
@SerializedName("strLeague")
val strLeague: String,
@SerializedName("strLocked")
val strLocked: String,
@SerializedName("strMap")
val strMap: Any,
@SerializedName("strPoster")
val strPoster: Any,
@SerializedName("strResult")
val strResult: Any,
@SerializedName("strSeason")
val strSeason: String,
@SerializedName("strSport")
val strSport: String,
@SerializedName("strTVStation")
val strTVStation: Any,
@SerializedName("strThumb")
val strThumb: Any,
@SerializedName("strTime")
val strTime: String,
@SerializedName("strTimeLocal")
val strTimeLocal: String,
@SerializedName("strTweet1")
val strTweet1: Any,
@SerializedName("strTweet2")
val strTweet2: Any,
@SerializedName("strTweet3")
val strTweet3: Any,
@SerializedName("strVideo")
val strVideo: Any
) {
constructor(
idEvent: String,
strEvent: String,
strDate: String,
idHomeTeam: String,
strHomeTeam: String,
intHomeScore: Any,
idAwayTeam: String,
strAwayTeam: String,
intAwayScore: Any
) : this(idEvent, strEvent, strDate, idHomeTeam, strHomeTeam, intHomeScore, idAwayTeam, strAwayTeam, intAwayScore)
}
如何在 Kotlin Android 中為數據類創建構造函數?
我嘗試創建構造函數。 但是,我得到“委托調用鏈中有一個循環”,請更正我的代碼並告訴我解決方案。 . .
對於數據類,類頭中定義的構造函數是主構造函數。 它不能委托給該類中的任何其他構造函數(盡管它可以委托給超類構造函數)。
但是,您可以在類的主體中定義輔助構造函數,只要它們委托給主構造函數即可。 例如:
data class EventItem(val dateEvent: String) {
constructor(date: Date) : this(date.toString())
}
您發布的代碼中的問題是您的輔助構造函數正試圖委托給自己。 您必須改為委托給主構造函數,這意味着您需要能夠確定輔助構造函數中缺少的所有參數的值。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.