错误“无法使用提供的参数调用以下任何函数。:

时间:2021-01-21 04:12:56

标签: android kotlin

我一直致力于在 Kotlin 中学习 RecyclerViews,但遇到了一个我似乎无法解决的特定错误:

val itemsHashSet = HashSet(category.items)

产生错误:

<块引用>

不能使用提供的参数调用以下函数。 ((MutableCollection..Collection?)) 其中 E = TypeVariable(E) 为乐趣 (c: (MutableCollection..Collection ?)): kotlin.collections.HashSet /* = java.util.HashSet / 定义在 kotlin.collections.HashSet (Int) 其中 E = TypeVariable(E) for fun (initialCapacity: Int): kotlin.collections.HashSet / = java.util.HashSet */ 在 kotlin.collections.HashSet 中定义

我尝试过更改格式,甚至用 Java 编写代码,然后在 Android Studio 中将其转换都无济于事。

这是我一直坚持的课程:

class CategoryManager(private val context: Context) {

    fun saveCategory(category: CategoryModel) {

        val sharedPreferences = PreferenceManager.getDefaultSharedPreferences(context)
        val editor = sharedPreferences.edit()

        val itemsHashSet = HashSet(category.items)

        editor.putStringSet(category.name, itemsHashSet)

        editor.apply()
    }

    fun retrieveCategories (): ArrayList<CategoryModel> {

        val sharedPreferences = PreferenceManager.getDefaultSharedPreferences(context)
        val data = sharedPreferences.all

        val categories = ArrayList<CategoryModel>()

        for (item in data) {

            val category = CategoryModel(item.key, arrayListOf(item.value.toString()))

            categories.add(category)

        }

        return categories

    }
}

对不起,如果我是个白痴,这很明显,但我在这里找不到一个有意义的适用​​答案。任何帮助表示赞赏

编辑:

类别模型:

package com.pwneill.favoritelistapp

class CategoryModel (name: String, items: ArrayList<String>) {

     val name = name
     val items = arrayOf(items)

}

1 个答案:

答案 0 :(得分:0)

您可以像这样初始化 HashSet

val itemHashSet = hashSetOf(category.items)