Dependency injection 匕首2-ProxyProvider方法的目的是什么?
我已看过以下问题: 然而,公认的答案表明,该方法的目的是使其可公开访问: 问题是,提供的方法可能无法从与组件相同的包中访问,因此我们生成了这个“代理”方法,它为Dagger提供了正确的可访问性 但是,如果Dependency injection 匕首2-ProxyProvider方法的目的是什么?,dependency-injection,dagger-2,dagger,Dependency Injection,Dagger 2,Dagger,我已看过以下问题: 然而,公认的答案表明,该方法的目的是使其可公开访问: 问题是,提供的方法可能无法从与组件相同的包中访问,因此我们生成了这个“代理”方法,它为Dagger提供了正确的可访问性 但是,如果@提供的方法不是静态的,则模块实例将在本地创建并与参数一起传递 在组件中: private Engine getEngine() { return DieselEngineModule_ProvideEngineFactory.proxyProvideEngine( dieselE
@提供的
方法不是静态的,则模块实例将在本地创建并与参数一起传递
在组件中:
private Engine getEngine() {
return DieselEngineModule_ProvideEngineFactory.proxyProvideEngine(
dieselEngineModule, getDieselEngine());
}
在工厂:
public static Engine proxyProvideEngine(DieselEngineModule instance, DieselEngine engine) {
return Preconditions.checkNotNull(
instance.provideEngine(engine), "Cannot return null from a non-@Nullable @Provides method");
}
这两个参数都可以直接在组件中使用,因此其用途不能是访问修饰符。
那么,绕过proxyProvides
方法的原因是什么