如何使用构造函数注入创建对象?

2024-03-28

我如何使用提供 Cat 的组件创建 Dog 的实例。

public final class Dog {
    private final Cat mCat;
    public final static String TAG = "Dog";

    @Inject public Dog(Cat cat) {
        mCat = cat;
        Log.e(TAG, "Dog class created");
    }
}

在尝试 Dagger 2 一段时间后,我不知道如何使用构造函数注入 - 一个提示会很好,谢谢。

Edit:
问题有什么问题吗?使用 Dagger 2 后,遵循了几个教程并阅读了官方文档,我不知道如何使用构造函数注入功能,这就是我在这里问的原因。我可以编写一个提供 Dog 对象的 DogModule,而不是使用 @Inject 将 Cat 依赖项注入到 Dog 中,但那时 Dog 将只是一个常规的 Java 类。字段注入效果很好(有很多示例展示了如何使用它),但是我需要做什么才能使用构造函数注入?


要使用 Dagger 2 构造函数注入功能创建对象,您需要向提供 Cat 类的组件添加一个方法。

@Component(
    dependencies = ApplicationComponent.class,
    modules = CatModule.class)
public interface ActivityComponent {
    void inject(final CatActivity a);
    // objects exposed to sub-components
    Cat cat();
    Dog dog();
}

Dog 的实例可以通过调用来检索[Component].dog().

final ActivityComponent comp = DaggerActivityComponent.builder()
            .applicationComponent(app.getApplicationComponent())
            .build();

final Dog d = comp.dog();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用构造函数注入创建对象? 的相关文章

  • 在 C# 中声明事件的语法是什么?

    在我的班级中 我想声明一个其他班级可以订阅的事件 声明事件的正确方法是什么 这不起作用 public event CollectMapsReportingComplete 你忘了提及type 对于非常简单的事件 EventHandler h

随机推荐

  • 由于iOS 7,视图不出现

    我在装有 iOS 7 的 iPhone 上尝试了我的应用程序 除了一件事之外 一切都运行良好 在 iOS 6 版本上 当我执行以下代码时 加载视图 带有活动指示器 出现并在加载结束时消失 在 iOS 7 上 加载期间根本不会出现视图 sel
  • 在 Google Cloud Build yaml 中克隆私有 GitHub 存储库

    根据一个note https cloud google com cloud build docs access private github repos在 Cloud Build 文档中 标题为访问私有 GitHub 存储库 当您使用 Cl
  • 如何保存循环中的字符输出?

    所以我做了这个函数 它只需要一个数字元素 而不是一个向量 salaryCategory function s if s gt 40000 s lt 70000 print Low if s gt 70000 s lt 100000 prin
  • 导入错误:没有名为 cloud.ml 的模块

    我正在尝试按照说明在张量流中使用本地预测 如下所述here https cloud google com sdk gcloud reference ml engine local predict 运行命令gcloud ml engine l
  • 在 Twitter Bootstrap 装订线中放置垂直线的最佳方法

    div class row fluid div class span6 Some content div div class span6 Some content div div 我想在这两列之间的排水沟中间放置一条垂直线 该线不是列的完整
  • GODI-电池:安装问题

    我正在尝试使用 GODI 控制台安装 godi batteries 我似乎已经对所有依赖项进行了排序 例如甘菊 我在 Godi 的界面中收到以下错误 gt ocamlfind ocamlopt shared linkall package
  • Tidyverse 重复跟踪父 ID 直到祖先的方法

    来自 Rebrickable 的主题数据集 https rebrickable com downloads 包括每个主题的 ID 及其父 ID 此处已重命名列 可能会递归 ID 可能有祖父母 曾祖父母等 这是一个遵循父链 City gt A
  • apscheduler 中的作业调度中下一次运行时间错过了几秒

    我有一个执行 cron 作业的函数 def add config job sched job module JOB METHODS get job type if module is None logging warn job type r
  • 用于在nodejs javascript中向用户发送消息的gmail API失败

    我的nodejs程序无法使用Gmail api发送消息 解决方案来自用于在 Node js 中发送邮件的 Gmail API https stackoverflow com questions 34546142 gmail api for
  • Solr 自动提交和自动优化?

    我很快就会将我的网站上传到 VPS 这是一个分类网站 使用Solr与 MySql 集成 每当放置或删除新的分类时 Solr 就会更新 我需要一种方法来使commit and optimize 自动化 例如每 3 小时左右一次 我怎样才能做到
  • 我们可以在c#中的datatable.select中添加参数吗

    我想知道是否可以在 datatable select expression 中添加参数 例如 string query Name Name dt is comming from database dt Select query 如何添加这个
  • 如何使用java解码引用打印[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 如何使用 Java 解码 Quote
  • ng-bind 不应该也适用于输入吗?

    我对我的有点困惑
  • pycurl中登录并使用cookie

    我需要下载受密码保护页面上的文件 要手动访问该页面 我首先必须通过普通登录页面进行身份验证 我想使用curl 在脚本中获取此页面 我的脚本首先登录 它似乎成功了 它从 PUT 到 login 返回了 200 但是 获取所需页面失败 返回 5
  • 在球体上均匀生成点

    我感兴趣的是生成围绕球体 均匀 且非随机 分布的点 就像高尔夫球的凹坑或足球上六边形的顶点一样 是否有明确定义的算法可以做到这一点 注意 我知道这些点并不是真正 均匀 分布在球体上 但它们的分布方式是 从直视任何点的任何方向看 点的分布看起
  • 如何对字符串中的字母进行计数和排序

    我想对用户输入的字母进行排序 并打印出用户输入的字符串中每个字母的数量 这就是我到目前为止所拥有的 我想知道这是否是正确的方法 我对java比较陌生 所以请让事情尽可能简单 根据我使用循环而不是大量 if else 构造的建议 我对我的代码
  • Aurelia CLI 包括 Bootstrap Glyphicons

    我正在尝试将 Bootstrap 包含在我的 Aurelia CLI 项目中 并且 CSS 和 JS 工作正常 我遇到的唯一问题是字形需要加载字体文件 我使用这个配置 dependencies name bootstrap path nod
  • 如何使用 Jest + Vuejs 模拟 window.location.href?

    目前 我正在为我的项目实施单元测试 并且有一个文件包含window location href 我想模拟这个来测试 这是我的示例代码 it method A should work correctly gt const url http d
  • Laravel:每当我返回模型时,总是返回与它的关系

    我有 2 张桌子 User Doctor id id email user id name signature last name photo password description date birth Every Doctor与一个有
  • 如何使用构造函数注入创建对象?

    我如何使用提供 Cat 的组件创建 Dog 的实例 public final class Dog private final Cat mCat public final static String TAG Dog Inject public