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?
You should not be using the
Injectordirectly. Rather pass in theProvider<FooClass>instead. Also, you should be injecting the provider in the places where you useFooClass.