我有一个界面
public interface SomeInterface {
void test();
}
和一个注释处理器,它生成SomeInterface
被调用的实现SomeInterfaceImpl
。
为了使这种类型可用于 Dagger 依赖注入,我将创建以下内容:
@Component(modules = {ApplicationModule.class})
@Singleton
public interface ApplicationComponent {
SomeInterface getSomeInterface();
}
和
@Module
public class ApplicationModule {
@Provides
@Singleton
SomeInterface provideSomeInterface() {
return new SomeInterfaceImpl();
}
}
问题是我不能SomeInterfaceImpl
在我的 ApplicationModule 中使用 use,因为它还不可用,并且将由注释处理器生成。
如何扩展我的注释处理器,以便我可以使用SomeInterface
Dagger 依赖注入并且生成的实现SomeInterfaceImpl
将被正确解析?
编辑:
该示例有效,但我想使用另一个注释处理器创建 ApplicationModule 并让处理器以某种方式将 ApplicationModule 集成到匕首图中。@Component(modules={ApplicationModule.class}) 将不存在,因为我不知道在代码中会生成 ApplicationModule。有没有办法将生成的 @Module 类集成到 Dagger Graph 中?请注意,我不想猜测会生成 ABCModule 并将其添加到 @Component。我希望这会以某种方式自动发生。