如何在 Kotlin 中读取 sealed class subclass?
How to read sealed class subclass in Kotlin?
在我的 Android 工作室项目中,我有如下结构:
@Stable
interface Levels {
@Immutable
sealed class LevelData {
object Empty : LevelData()
@Immutable
data class L1(
val locationData: Locations.LocationData.StageL1
) : LevelData()
}
}
在另一个 class 中,我有 val levelData = mutableStateOf<Levels.LevelData>(Levels.LevelData.Empty)
变量,默认为 Empty。然后状态发生变化,我想像 levelData.value.locationData
?
一样访问 levelData
中的 locationData
AndroidStudio 中的自动完成在下拉列表中没有显示任何locationData
成员访问权限?!?
您的 levelData
变量保存超类型 Levels.LevelData
的可变状态。您需要将对象转换为 L1 才能访问 locationData
val value = levelData.value
if(value is Levels.LevelData.L1){
val locationData = value.locationData
//perform action on locationData
}
在我的 Android 工作室项目中,我有如下结构:
@Stable
interface Levels {
@Immutable
sealed class LevelData {
object Empty : LevelData()
@Immutable
data class L1(
val locationData: Locations.LocationData.StageL1
) : LevelData()
}
}
在另一个 class 中,我有 val levelData = mutableStateOf<Levels.LevelData>(Levels.LevelData.Empty)
变量,默认为 Empty。然后状态发生变化,我想像 levelData.value.locationData
?
levelData
中的 locationData
AndroidStudio 中的自动完成在下拉列表中没有显示任何locationData
成员访问权限?!?
您的 levelData
变量保存超类型 Levels.LevelData
的可变状态。您需要将对象转换为 L1 才能访问 locationData
val value = levelData.value
if(value is Levels.LevelData.L1){
val locationData = value.locationData
//perform action on locationData
}