У меня есть Guice Module
, который предоставляет List<String>
с использованием @Provides
-носно.Предоставление общего экземпляра в 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>>() {})
}
}
Испытание, однако, терпит неудачу с:
1) No implementation for java.util.List<? extends java.lang.String> was bound.
while locating java.util.List<? extends java.lang.String>
Теперь это, кажется, так же, как this question, но я понятия не имею, где добавить @JvmSuppressWildcards
аннотацию; добавление его в метод getStrings()
ничего не меняет, как и добавление его к object
в вызове getInstance()
. Как заставить Guice делать то, что я хочу?
Ничего себе, это же очень удивительно, что здесь принадлежит аннотация –