多次注射匕首

  发布于 2023-01-11 20:13

是否有可能在dagger中获取接口/类的实现列表?

我正在寻找像Ninject的Multi-Injection这样的东西.

1 个回答
  • 更新为Dagger2

    已经记录在案.

    TL; DR:

    在您的提供商

    @Provides @IntoSet Foo provideAFoo() { return AFoo(); } 
    

    ......其他模块或同一模块......

    @Provides @IntoSet Foo provideBFoo() { return BFoo(); } 
    

    ......以及其他地方......

    class Bar { 
        @Inject Set<Foo> allMyFoos; 
    } 
    

    从Dagger2开始,可以映射依赖关系(即java.util.Map).

    原始答案(适用于Dagger1)

    看起来文档不完整,但Dagger已经提供了这个.

    例如(从dagger的google组中提取),使用Provide.Type.SET提供实现

    @Provides(type=SET) Foo provideAFoo() { return AFoo(); } 
    

    ......其他模块或同一模块......

    @Provides(type=SET) Foo provideBFoo() { return BFoo(); } 
    

    ......以及其他地方......

    class Bar { 
        @Inject Set<Foo> allMyFoos; 
    } 
    

    REF:在dagger的google小组中发帖

    2023-01-11 20:17 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有