gpt4 book ai didi

guava - Guava TreeMultimap的Kotlin类型推断失败

转载 作者:行者123 更新时间:2023-12-02 13:24:28 28 4
gpt4 key购买 nike

我有:

data class Edge(val spec: String, val weight: Int)
private val graph: SortedSetMultimap<String, Edge> = TreeMultimap.create()

对create()的调用是一个错误:

MapCrawler.kt:(63,71):类型推断失败。预期的类型不匹配:推断的类型为TreeMultimap <(??? .. ???),(??? .. ???)>!但应该使用SortedSetMultimap

如果我将其更改为
SortedSetMultimap<String, String> 

它工作正常(类型推断没有问题)。换句话说,这行编译就可以了:
private val graph: SortedSetMultimap<String, String> = TreeMultimap.create()

Edge类将类型推论弄得一团糟,我该如何解决?

最佳答案

您需要将两个比较器实现传递给create函数。
看看以下片段:

private val graph:SortedSetMultimap<String, Food> = TreeMultimap.create(Comparator<String> { str1, str2 -> 0
// compare string here
}, Comparator<Food> { edge1, edge2 -> 0
// compare Edge object here
})

我已经测试了它的工作原理。您可以删除数据类型( :SortedSetMultimap<String, Food>),因为赋值语句可以推断返回的是哪种类型的值。

希望这可以帮助。

关于guava - Guava TreeMultimap的Kotlin类型推断失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44104598/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com