匕首做什么而不是反思

时间:2019-07-10 03:23:39

标签: android dagger-2

From the docs: https://developer.android.com/topic/performance/memory.html#DependencyInjection

enter image description here


它说,它不使用注释。但是我使用了@Inject@Component@module ...等注释。.语句如何有效


1 个答案:

答案 0 :(得分:1)

Dagger2为您生成了大量样板代码和注入代码,通常在您尝试与之交互时,这些生成的对象都以单词Dagger为前缀。我不知道这是否会回答您的问题,但是在使用Dagger时,通常需要先为要生成的这些类构建应用程序,然后才能真正开始使用它们,并执行清理和构建。再次为您重新生成这些文件(干净删除,构建创建)。

例如:

    DaggerAppComponent.builder()
        .application(this)
        .build()
        .inject(this)

DaggerAppComponent仅在完成构建后才能访问,因为它是通过匕首框架生成的

dagger提供的注释,例如@Inject只是告诉dagger HOW生成某些文件或在何处(对于此实例)注入值,这些注释用于告诉dagger如何做事情而不是进行反射