mur*_*urt 8 android parcelable kotlin
我无法使用@parcelize注释创建通用结构。我希望将构造函数用作Jason,Room和Parcelable的构造函数。
假设我们有课
@Parcelize
class Food(var taste: String = "")
现在首先想到两个解决方案
1,味道必须为var或val的抱怨,才能使用可用的Parceable构造函数
@Parcelize
class FastFood(var callory:String = "", taste: String): Food(taste) // error
2.我必须明确表达卵磷脂味道的抱怨-那么多态性有什么好处?
@Parcelize
class FastFood(var callory: String = "", var taste: String): Food(taste) // error
如何与您的库一起有效地使用继承?
在 Kotlin 中,如果您在构造函数“val”或“var”中添加值,它就会成为类属性。要使用 Parceable,您需要添加它,因为没有它 Parcelable.Creator 将无法访问它。然后,您需要向 Food 类和属性 'taste' 添加 'open' 修饰符,因为在 Kotlin 中默认情况下都是最终的,因此您将能够覆盖味道值。
@Parcelize
open class Food(open val taste: String)
@Parcelize
class FastFood(var callory:String = "", override val taste: String): Food(taste)
| 归档时间: | 
 | 
| 查看次数: | 1075 次 | 
| 最近记录: |