How to inject Injector?
dependency-injection, guice, java
Solution
You should not be using the `Injector` directly. Rather pass in the `Provider<FooClass>` instead. Also, you should be injecting the provider in the places where you use `FooClass`.
private final Provider<FooClass> provider;
@Inject
public ClassWhereFooIsUsed(Provider<FooClass> provider) {
this.provider = provider;
}
.... somewhere else
FooClass f = provider.get(); // This is lazy
Problem
Situation: i need lazy dependency instantiation in some `FooClass`, so i pass `Injector` to class as a constructor parameter. ``` private final Injector m_injector; public FooClass(@Named("FooInjector") Injector injector) { m_injector = injector; } ``` But guice doesn't permit to bind core classes (injectors, modules and etc). What is the solution?