我已经用2.25.2
更新了我的匕首,根据最新版本,我们不再需要@JvmSuppressWildcards
此注释。我将其删除并尝试运行该应用程序,但无法正常工作,显示出匕首生成错误,例如:
error: [Dagger/MissingBinding] java.util.Set<? extends com.test.deeplinking.handlers.DeeplinkHandler> cannot be provided without an @Provides-annotated method.
我的匕首模块:
@Module
abstract class DeeplinkHandlerSetModule {
@Multibinds
abstract fun deeplinkHandlers(): Set<DeeplinkHandler>
@Provides
@JvmStatic
fun provideEntryDeeplinkHandler(
set: Set<DeeplinkHandler>, .., ..
) = EntryDeeplinkHandler(set, ..., ...)
}
像@JvmSuppressWildcards
一样添加set: Set<@JvmSuppressWildcards DeeplinkHandler>
效果很好。甚至从dagger 2.25.2版本开始支持?任何人都可以确认吗?
您为什么认为不再需要@JvmSuppressWildcards
?据我所知,发行说明中没有任何相关内容。https://github.com/google/dagger/releases
唯一类似的项目不需要模块对象上的@JvmStatic
。