Kotlin 匕首2套多重绑定不';你不在科特林为SimpleEntry工作吗?
当提供Kotlin 匕首2套多重绑定不';你不在科特林为SimpleEntry工作吗?,kotlin,dagger-2,multibinding,Kotlin,Dagger 2,Multibinding,当提供对作为IntoSet @Provides @IntoSet fun entryOne(): Pair<String, String> { val key = randomStringGenerator() val value = "Random Value 1" return Pair(key, value) } @Provides @IntoSet fun entryTw
对作为IntoSet
@Provides
@IntoSet
fun entryOne(): Pair<String, String> {
val key = randomStringGenerator()
val value = "Random Value 1"
return Pair(key, value)
}
@Provides
@IntoSet
fun entryTwo(): Pair<String, String> {
val key = randomStringGenerator()
val value = "Random Value 2"
return Pair(key, value)
}
@Provides
fun randomKeyValueMap(entries: Set<Pair<String, String>>): Map<String, String> {
val randomKeyValueMap = LinkedHashMap<String, String>(entries.size)
for (entry in entries) {
randomKeyValueMap[entry.first] = entry.second
}
return randomKeyValueMap
}
It投诉
error: [Dagger/MissingBinding] java.util.Set<? extends java.util.AbstractMap.SimpleEntry<java.lang.String,java.lang.String>> cannot be provided without an @Provides-annotated method.
public abstract interface MyComponent {
^
java.util.Set<? extends java.util.AbstractMap.SimpleEntry<java.lang.String,java.lang.String>> is injected at
error:[Dagger/MissingBinding]java.util.Set看起来我需要@jvmsuppresswidcards
@Provides
@IntoSet
fun entryOne(): Map.Entry<String, String> {
val key = randomStringGenerator()
val value = "Random Value 1"
return AbstractMap.SimpleEntry(key, value)
}
@Provides
@IntoSet
fun entryTwo(): Map.Entry<String, String> {
val key = randomStringGenerator()
val value = "Random Value 2"
return AbstractMap.SimpleEntry(key, value)
}
@Provides
@JvmSuppressWildcards
fun randomKeyValueMap(entries: Set<Map.Entry<String, String>>): Map<String, String> {
val randomKeyValueMap = LinkedHashMap<String, String>(entries.size)
for (entry in entries) {
randomKeyValueMap[entry.key] = entry.value
}
return randomKeyValueMap
}
@提供
@IntoSet
fun entryOne():Map.Entry{
val key=randomStringGenerator()
val value=“随机值1”
返回AbstractMap.SimpleEntry(键,值)
}
@提供
@IntoSet
fun entryTwo():Map.Entry{
val key=randomStringGenerator()
val value=“随机值2”
返回AbstractMap.SimpleEntry(键,值)
}
@提供
@JvmSuppressWildcards
fun randomKeyValueMap(条目:集合):映射{
val randomKeyValueMap=LinkedHashMap(entries.size)
for(条目中的条目){
randomKeyValueMap[entry.key]=entry.value
}
返回随机键值映射
}
提交了一份dagger 2发行的
@Provides
@IntoSet
fun entryOne(): Map.Entry<String, String> {
val key = randomStringGenerator()
val value = "Random Value 1"
return AbstractMap.SimpleEntry(key, value)
}
@Provides
@IntoSet
fun entryTwo(): Map.Entry<String, String> {
val key = randomStringGenerator()
val value = "Random Value 2"
return AbstractMap.SimpleEntry(key, value)
}
@Provides
@JvmSuppressWildcards
fun randomKeyValueMap(entries: Set<Map.Entry<String, String>>): Map<String, String> {
val randomKeyValueMap = LinkedHashMap<String, String>(entries.size)
for (entry in entries) {
randomKeyValueMap[entry.key] = entry.value
}
return randomKeyValueMap
}