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