Android 开发问题:Kotlin 的 by remember mutableStateListOf 报错
2026/4/28 4:52:23 网站建设 项目流程
varfruitListbyremember{mutableStateListOf("苹果","香蕉","橙子")}
  • 在 Android Jetpack Compose 中开发中,上述代码出现如下错误信息
Type 'TypeVariable(T)' has no method 'getValue(Nothing?, KProperty<*>)' and thus it cannot serve as a delegate
问题原因
  1. by 关键字是 Kotlin 的委托属性语法,它要求右侧的对象必须实现 getValue 和 setValue 函数

  2. mutableStateListOf 函数返回的是MutableList<T>,这个类型本身不支持作为属性委托使用

处理策略
  • 将 by 替换为 = 即可
varfruitList=remember{mutableStateListOf("苹果","香蕉","橙子")}
小结
  1. 对于 List / Map 类型的状态:总是使用 = 和mutableStateListOf()/mutableStateMapOf()

  2. 对于单个值类型的状态:使用 by 和mutableStateOf()

  3. remember 的作用是在重组时保持状态,防止重新初始化

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询