Dagger 2 multibindings con Kotlin

Tengo el siguiente fragment en mi module daga 2

@Singleton @Provides @ElementsIntoSet fun providesQueries(foo: Foo): Set<Foo>{ val queries = LinkedHashSet<Foo>() queries.add(foo) return queries } 

Intento inyectarme de esta manera

 @Inject lateinit var foo: Set<Foo> 

Pero dagger muestra un error que dice que Dagger no puede proporcionar java.util.Set sin el método @Provides o @Produces.

Hice lo mismo en Java y funcionó. ¿Alguien sabe por qué está fallando?

Como se describe en la reference de Kotlin

Para que las API de Kotlin funcionen en Java, generamos Box<Super> como Box<? extends Super> Box<? extends Super> para el Box definido de forma Box (o Foo<? super Bar> para Foo definido de forma invariable) cuando aparece como un parámetro.

Puede usar @JvmSuppressWildcards para evitarlo, del mismo modo que lo siguiente:

 @Inject lateinit var foo: Set<@JvmSuppressWildcards Foo> 
  • Prueba de unidades de Mockito: en todas las invocaciones de methods de una class, devuelve "verdadero"
  • ¿Por qué puedo definir una var sin una class en Kotlin?
  • Dibuja una línea en el canvas lentamente como una animation
  • ¿Cómo hacer que el argumento sea pnetworkingeterminado?
  • Kotlin spring-boot @ConfigurationProperties
  • Método de ejecución en el object kotlin
  • ¿Qué significa el código this @ MainActivity?
  • Convert Maybe to Single de otra fuente si Maybe completa
  • Cómo "anteponer" un Char a una cadena en Kotlin
  • ¿Cómo puedo llamar a los methods de Kotlin con generics reificados de Java?
  • ¿Cómo crear una instancia de class anónima de class abstracta en Kotlin?