Dependency injection 匕首2-ProxyProvider方法的目的是什么?

Dependency injection 匕首2-ProxyProvider方法的目的是什么?,dependency-injection,dagger-2,dagger,Dependency Injection,Dagger 2,Dagger,我已看过以下问题: 然而,公认的答案表明,该方法的目的是使其可公开访问: 问题是,提供的方法可能无法从与组件相同的包中访问,因此我们生成了这个“代理”方法,它为Dagger提供了正确的可访问性 但是,如果@提供的方法不是静态的,则模块实例将在本地创建并与参数一起传递 在组件中: private Engine getEngine() { return DieselEngineModule_ProvideEngineFactory.proxyProvideEngine( dieselE

我已看过以下问题:

然而,公认的答案表明,该方法的目的是使其可公开访问:

问题是,提供的方法可能无法从与组件相同的包中访问,因此我们生成了这个“代理”方法,它为Dagger提供了正确的可访问性

但是,如果
@提供的
方法不是静态的,则模块实例将在本地创建并与参数一起传递

在组件中:

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
方法的原因是什么