Ich habe eine Guice Module
, die eine List<String>
unter Verwendung einer @Provides
-annotated-Methode bietet.Bereitstellung einer generischen Instanz in Kotlin & Guice
class TestModule() : Module {
override fun configure(binder: Binder) {}
@Provides fun getStrings(): List<String> = listOf("foo", "bar")
}
class Test {
@Test fun `provider can not deliver`() {
val injector = Guice.createInjector(TestModule())
injector.getInstance(object : Key<List<String>>() {})
}
}
Der Test schlägt fehl, jedoch mit:
1) No implementation for java.util.List<? extends java.lang.String> was bound.
while locating java.util.List<? extends java.lang.String>
Nun, das ist die gleiche wie this question zu sein scheint, aber ich habe keine Ahnung, wo die @JvmSuppressWildcards
Anmerkung hinzuzufügen; Hinzufügen zu der getStrings()
Methode ändert nichts, ebenso wie das Hinzufügen zu der object
in der getInstance()
Aufruf. Wie bekomme ich Guice zu tun, was ich will?
Wow, selbe-sehr überrascht, das ist, wo die Annotation gehört –