首页 > 解决方案 > 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)
    }
}

kotlin 代码示例

标签: androidkotlin

解决方案


除了try/catch积木,您还可以在放入模型时安全地打开它。

(a.value as? HashSet<String>)?.let {
   TaskList(a.key, ArrayList(it))
}

推荐阅读