Kotlin 创建对象的 Arraylist
Kotllin create an Arraylist of an Object
我想创建一个 BaseObject 的数组列表,从 List< Allparkingquery> 获取数据,它具有与 BaseObject 相同的参数但是不同的 class 个名字
这是基础 BaseObject
data class BaseObject (
@SerializedName("queryfor") var queryfor : String,
@SerializedName("whichitem") val whichitem : String,
@SerializedName("Latitude") val latitude : String,
@SerializedName("Longitude") val longitude : String,
@SerializedName("DateCreated") val dateCreated : String,
@SerializedName("NumberQueried") val numberQueried : String,
@SerializedName("CurrentState") var currentState : String
)
这是@SerializedName("allparkingquery") val allparkingquery 的数组:列表,
data class Allparkingquery (
@SerializedName("queryfor") val queryfor : String,
@SerializedName("whichitem") val whichitem : String,
@SerializedName("Latitude") val latitude : String,
@SerializedName("Longitude") val longitude : String,
@SerializedName("DateCreated") val dateCreated : String,
@SerializedName("NumberQueried") val numberQueried : String,
@SerializedName("CurrentState") val currentState : String
)
这里是我尝试循环 List 以将数据填充到其中的地方
列表< BaseObject >
所以挑战是 baseList.add(item) 显示错误。见下文
var baseList: List<BaseObject> = ArrayList<BaseObject>()
response.response_data.history[0].allparkingquery.forEachIndexed { index, item ->
baseList.add(item)
}
发生这种情况的原因是,尽管有相似之处,但 BaseObject
和 Allparkingquery
并不相关,因为 Allparkingquery
不继承自 BaseObject
。
你的示例中缺少拥有基础对象的理由,所以我假设 Allparkingquery
将来会有一个字段将其与 BaseObject
区分开来,所以继续吧您需要做的是将 BaseObject
更改为抽象 class 或接口,并让 Allparkingquery
继承它。
abstract class BaseObject {
@SerializedName("queryfor") abstract var queryfor : String,
@SerializedName("whichitem") abstract val whichitem : String,
@SerializedName("Latitude") abstract val latitude : String,
@SerializedName("Longitude") abstract val longitude : String,
@SerializedName("DateCreated") abstract val dateCreated : String,
@SerializedName("NumberQueried") abstract val numberQueried : String,
@SerializedName("CurrentState") abstract var currentState : String
}
class Allparkingquery(
override var queryfor : String,
override val whichitem : String,
override val latitude : String,
override val longitude : String,
override val dateCreated : String,
override val numberQueried : String,
override var currentState : String
) : BaseObject()
我想创建一个 BaseObject 的数组列表,从 List< Allparkingquery> 获取数据,它具有与 BaseObject 相同的参数但是不同的 class 个名字
这是基础 BaseObject
data class BaseObject (
@SerializedName("queryfor") var queryfor : String,
@SerializedName("whichitem") val whichitem : String,
@SerializedName("Latitude") val latitude : String,
@SerializedName("Longitude") val longitude : String,
@SerializedName("DateCreated") val dateCreated : String,
@SerializedName("NumberQueried") val numberQueried : String,
@SerializedName("CurrentState") var currentState : String
)
这是@SerializedName("allparkingquery") val allparkingquery 的数组:列表,
data class Allparkingquery (
@SerializedName("queryfor") val queryfor : String,
@SerializedName("whichitem") val whichitem : String,
@SerializedName("Latitude") val latitude : String,
@SerializedName("Longitude") val longitude : String,
@SerializedName("DateCreated") val dateCreated : String,
@SerializedName("NumberQueried") val numberQueried : String,
@SerializedName("CurrentState") val currentState : String
)
这里是我尝试循环 List
所以挑战是 baseList.add(item) 显示错误。见下文
var baseList: List<BaseObject> = ArrayList<BaseObject>()
response.response_data.history[0].allparkingquery.forEachIndexed { index, item ->
baseList.add(item)
}
发生这种情况的原因是,尽管有相似之处,但 BaseObject
和 Allparkingquery
并不相关,因为 Allparkingquery
不继承自 BaseObject
。
你的示例中缺少拥有基础对象的理由,所以我假设 Allparkingquery
将来会有一个字段将其与 BaseObject
区分开来,所以继续吧您需要做的是将 BaseObject
更改为抽象 class 或接口,并让 Allparkingquery
继承它。
abstract class BaseObject {
@SerializedName("queryfor") abstract var queryfor : String,
@SerializedName("whichitem") abstract val whichitem : String,
@SerializedName("Latitude") abstract val latitude : String,
@SerializedName("Longitude") abstract val longitude : String,
@SerializedName("DateCreated") abstract val dateCreated : String,
@SerializedName("NumberQueried") abstract val numberQueried : String,
@SerializedName("CurrentState") abstract var currentState : String
}
class Allparkingquery(
override var queryfor : String,
override val whichitem : String,
override val latitude : String,
override val longitude : String,
override val dateCreated : String,
override val numberQueried : String,
override var currentState : String
) : BaseObject()