**关闭。**这个问题是not reproducible or was caused by typos。目前不接受答复。
此问题是由打印错误或无法再重现的问题引起的。虽然类似的问题可能是on-topic在这里,这一个是解决的方式不太可能帮助未来的读者。
3天前关闭。
Improve this question
我有一个密封的类,它基本上定义了我的Jetpack Compose应用程序中数据的排序顺序:
sealed class DataOrder(open val sortDirection: SortOrderDirection) {
class Name(sortOrderDirection: SortOrderDirection) : DataOrder(sortOrderDirection)
open fun copy(sortOrderDirection: SortOrderDirection): DataOrder {
return when (this) {
is Name -> Name(sortOrderDirection)
is FirearmOrder.NumberOfShots -> FirearmOrder.NumberOfShots(sortOrderDirection)
}
}
companion object {
fun default(): DataOrder {
return Name(SortOrderDirection.Ascending)
}
}
}
这是一个通用类,我的应用程序中的数据可以使用它进行排序(就像所有数据类型都有一个“Name
”属性,所以这就是为什么它在通用DataOrder
类中)。
现在我还有一个继承自DataOrder的类,为某些数据类型提供更具体的排序,这些数据类型可能具有其他数据类型所没有的属性:
sealed class FirearmOrder(override val sortDirection: SortOrderDirection) : DataOrder(sortDirection) {
class NumberOfShots(sortOrderDirection: SortOrderDirection) : FirearmOrder(sortOrderDirection)
}
这对我来说似乎很有意义,但是当我尝试使用这个设置时,我得到一个错误,说“未解析的引用:Name
“
data class FirearmsState(
val firearms: List<Firearm> = emptyList(),
val firearmOrder: DataOrder = FirearmOrder.Name(SortOrderDirection.Ascending) // error on this line
)
我想这个FirearmOrder
对象可以访问超类的Name
属性,但我猜不行?我还尝试将open
放在DataOrder
类中class Name
定义的前面,但这没有什么区别。
有人能看出我错过了什么吗?谢谢!仅供参考,我最初是根据Philipp Lackner在他的一个教程应用程序中所做的来订购数据的:Philipp Lackner Note App
1条答案
按热度按时间kknvjkwl1#
这一点很明显,但我专注于
FirearmOrder
类,所以甚至没有意识到它。感谢@Sweeper,我只需要在
FirearmsState
类中将FirearmOrder.Name
更改为DataOrder.Name
。一切似乎都是正确的设置,我只是被愚蠢。