【发布时间】:2022-09-28 04:29:40
【问题描述】:
我正在使用 Dagger 将 Map<Int,Handler> 注入到一个类中。当在模块中定义这样的东西时,它可以完美地工作:
@Binds
@IntoMap
@IntKey(FOO_KEY)
Handler bindFooHandler(FooHandler handler);
如果不存在此类方法,则项目无法构建,因为它不知道要注入的Map<Integer,Handler>。当不存在@IntoMap 绑定时,有什么方法可以使Map<Integer,Handler> 可注入?
-
在这种情况下你想注入什么,一个空的地图?
-
理想情况下,是的。但它也可能为 null 或
Optional。我知道有一个@BindsOptionalOf注释,但我不完全确定它是如何工作的,也找不到任何将它与多重绑定一起使用的示例。
标签: dagger-2