Предоставление общего экземпляра в Kotlin & Guice

У меня есть Module Guice, который предоставляет List<String> с помощью метода @Provides -annotated.

 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> 

Теперь это похоже на этот вопрос, но я не знаю, где добавить аннотацию @JvmSuppressWildcards ; добавление его в метод getStrings() ничего не меняет, как и добавление его к object в вызове getInstance() . Как заставить Guice делать то, что я хочу?

После многих проб и ошибок я пришел к этому решению:

 @Test fun `provider can not deliver`() { val injector = Guice.createInjector(TestModule()) injector.getInstance(object : Key<List<@JvmSuppressWildcards String>>() {}) } 

Это последнее место, которое я бы подумал, что аннотация действительно действительна, но внезапно тест был зеленым.

Intereting Posts
Как связать со статическим членом класса Java в KDoc? Android JUnit тест блокирует бесконечно, когда Observable наблюдается на AndroidSchedulers.mainThread () Что отличает <reified T> от <reified T: Any> в Котлине? SonarQube: как применить несколько профилей качества к одному проекту? Преобразование статических переменных из Java в Kotlin getExternalFilesDir возвращает непоследовательные каталоги Использование условия для выбора свойства сортировки в Котлине Не могли бы вы объяснить этот фрагмент кода с точки зрения кода C #? Доступ к Spek для внутренних видимых классов Kotlin Как я могу ссылаться на сопутствующие объекты из Java? Не удается разрешить символ @ReadOnly и @Mutable в компиляции Kotlin 1.1.0 Вызов функции в фрагменте представления пейджера из активности Видимость Не работает с Kotlin Кинжал 2: Невозможно найти сгенерированный класс в Intellij Idea (Kotlin) Не может быть предоставлен без @ Предоставляет-аннотированный метод