[英]How to get copy of the ArrayList<Sealed Class> in android using kotlin
android中封存的class的arraylist副本如何获取
private var homePageApiResponseList: ArrayList<HomeApiResponseModel> = ArrayList()
这里的 HomeApiResponseModel 是一个 Sealed class。HomeApiResponseModel 给出如下
sealed class HomeApiResponseModel {
data class HomeCategoryListModel(
var categoryList : MutableList<CategoryModel> = mutableListOf(),
var categoryNameType : String = ""
) : HomeApiResponseModel()
data class HomeBestSellerListModel(
var bestSellerList : MutableList<ChildrenModel> = mutableListOf(),
var bestSellerNameType : String = ""
) : HomeApiResponseModel()
data class HomeMustTryListModel(
var mustTryList : MutableList<ChildrenModel> = mutableListOf(),
var mustTryNameType : String = ""
) : HomeApiResponseModel()
}
通常 object 副本的 arraylist 很容易通过anyList.map { it.copy() }
在密封的 class 中显示错误。 如何获得密封class的arraylist副本
谢谢
在父类中创建一个摘要 function。 每个孩子都可以实现它并调用他们自己的copy()
。 摘要 function 的名称应与“copy”不同,以避免冲突。
顺便说一句,在您的情况下,密封接口可能比密封 class 更干净,因为子级之间没有共同的功能。 我建议避免将可变 collections 与var
属性结合使用。 以两种不同的方式使某些东西可变会增加(通常是不必要的)复杂性和更多出现错误的机会。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.