Mam Guice Module
, która zapewnia List<String>
przy użyciu metody nieaktywnej @Provides
.Udostępnianie ogólnej instancji w Kotlin i 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>>() {})
}
}
Badanie jednak nie powiedzie się z:
1) No implementation for java.util.List<? extends java.lang.String> was bound.
while locating java.util.List<? extends java.lang.String>
Teraz to wydaje się być taka sama jak this question ale nie mam pojęcia, gdzie dodać @JvmSuppressWildcards
adnotacji; dodanie go do metody getStrings()
niczego nie zmienia, podobnie jak dodanie go do object
w wywołaniu getInstance()
. Jak sprawić, by Guice robił, co chcę?
Wow, sam-bardzo zaskoczony, że tam, gdzie należy adnotacja –