You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
You can declare that a multibound set or map is bound by adding an abstract @Multibinds-annotated method to a module that returns the set or map you want to declare.
You do not have to use @Multibinds for sets or maps that have at least one @IntoSet, @ElementsIntoSet, or @Intomap binding, but you do have to declare them if they may be empty.
前言
在Android的IoC(八)—— 可空注入实现里面
留下了下面的遗憾
现在@BindsOptionalOf只支持(0-1),暂时对(0-n)还没有直接的解决方案。
翻了很多都没翻到解决方案。最后只能搁置。
偶然机会,这个问题终于有了解。
真是踏破铁鞋无觅处,得来全不费工夫
Key Point:@Multibinds
迫不及待要实现一下
声明部分,只要定义好@Multibinds标记即可
调用部分,和平时用的集合导入一样用法,Optional是不需要了
运行结果
符合预期,那么0部分已经是实现了
n也要实现下,接下来导入一些对象看看
这部分的用法和一般的@IntoSet用法一样
运行结果
非常完美收工
结论
@Multibinds可以完美实现[0-n]的多重绑定逻辑,完善了IoC的特性。
其实相关资料就在multibindings这个章节里面,我以前只是看了上半部分,@IntoSet @Intomap @stringkey看完基本上收工了。后面的部分没耐性看完。
是的又犯下了“灯下黑”的错误
Demo 仓库
参考链接
The text was updated successfully, but these errors were encountered: