gpt4 book ai didi

android - @Parcelize 注解和继承

转载 作者:IT老高 更新时间:2023-10-28 13:46:00 28 4
gpt4 key购买 nike

我无法使用@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 中默认情况下都是 final,所以你将能够覆盖味觉值。

@Parcelize
open class Food(open val taste: String)

@Parcelize
class FastFood(var callory:String = "", override val taste: String): Food(taste)

关于android - @Parcelize 注解和继承,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48097429/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com