Java inject方法是保留名称吗?Dagger-2如何使用它的身体?
我看到了这个片段:Java inject方法是保留名称吗?Dagger-2如何使用它的身体?,java,dagger-2,Java,Dagger 2,我看到了这个片段: @Component(modules = {TestActivityModule.class}) public interface TestActivityComponent { void inject(TestActivity activity); } 但是inject方法没有在用户代码中实现(而是在Dagger-2代码中自动生成) 因此,inject是保留名称吗?Dagger-2如何实现此方法?好的,我知道了:名称不重要,它可以是例如squere,只要提供的类型
@Component(modules = {TestActivityModule.class})
public interface TestActivityComponent {
void inject(TestActivity activity);
}
但是inject
方法没有在用户代码中实现(而是在Dagger-2
代码中自动生成)
因此,
inject
是保留名称吗?Dagger-2
如何实现此方法?好的,我知道了:名称不重要,它可以是例如squere
,只要提供的类型包含@Inject
字段/方法/构造函数,Dagger-2
将生成方法的主体:
@Component(modules = {TypoModule.class})
public interface TypoComponent {
void squeeze(Thingie t);
}
…只要有一个@提供的返回@Inject
ed类型:
@Module class TypoModule {
@Provides InjectedType whateverNameYouDecide() {
return new InjectedSubType();
// InjectedSubType extends InjectedType, obviously...
}
}
当然,Thingie
应该有@Inject
ed成员,否则什么也不会发生:
class Thingie {
@Inject InjectedType thingieID;
}
事情就是这样…看:@AhmadAlsanie,我看到了,它没有准确回答问题。命名只是惯例和可读性。您不必将其称为组件或模块,inject
(或squeak
或其他任何东西)是一种“成员注入方法”。合同记录在合同中。