代码之家  ›  专栏  ›  技术社区  ›  Criwran

Kotlin:类型推断失败。类型参数T的值应在输入类型中提及

  •  0
  • Criwran  · 技术社区  · 2 年前

    我是Kotlin的新手,因为下面的代码:

    fun a(stcd: String) {
            val res = mutableSetOf<String>()
            val aaa = mutableListOf<Map<String, Set<String>>>()
            aaa.stream().filter { x: Map<String, Set<String>> -> x.isNotEmpty() }
                .filter { x: Map<String, Set<String>> ->
                    x.values.contains(stcd) // throws error
                }.forEach { x: Map<String, Set<String>> ->
                    x.forEach { (k: String, v: Set<String>?) ->
                        res.add(k)
                    }
                }
        }
    

    有人能指出原因吗 contains 抛出错误: Type inference failed. The value of the type parameter T should be mentioned in input types (argument types, receiver type or expected type). Try to specify it explicitly. ?

    1 回复  |  直到 2 年前
        1
  •  0
  •   k314159    2 年前

    这是因为 x.values Set<String> Collection<Set<String>> 根据定义 values . 因此,这样的集合不能包含 String 类型