android - Kotlin 如何尝试/捕捉演员表
问题描述
我将共享首选项值存储为 aHashSet
并在检索时看到有关未经检查的强制转换的警告。什么是最简单的,什么是最安全的解决方案来确保在这里实现无错误?
class TaskListDataManager(private val context: Context) {
fun saveList(taskList: TaskList) {
val sharedPreferences = PreferenceManager.getDefaultSharedPreferences(context).edit()
sharedPreferences.putStringSet(taskList.name, taskList.taskList.toHashSet())
sharedPreferences.apply()
}
fun readList(): ArrayList<TaskList> {
val sharedPreferences = PreferenceManager.getDefaultSharedPreferences(context)
val taskLists = sharedPreferences.all.map {
TaskList(it.key, ArrayList(it.value as HashSet<String>))
}
return ArrayList<TaskList>(taskLists)
}
}
解决方案
除了try/catch
积木,您还可以在放入模型时安全地打开它。
(a.value as? HashSet<String>)?.let {
TaskList(a.key, ArrayList(it))
}
推荐阅读
- javascript - 对象数组到常规数组,其中列出的值来自对象中的特定键
- azure - 是否每次我需要推送文件时都不需要输入 Azure DevOps 密码?
- matrix - OLS回归是否总是可以进行的?
- python - Windows 上的 Python 3:扩展 stdin.readline() 行缓冲区大小
- reactjs - 缩小 React 构建文件,使其难以阅读
- php - 如何在锚点中添加可点击的链接 indise php _e
- pandas - 如何优化这些 pandas 应用功能?
- python - 如何从txt文件加载命令,python
- javascript - 在 Angular 应用程序中集成应用程序动态
- arrays - 在二维列表中从 x 索引到 y 的紧凑方法