@Inject void initialize(Injector injector){
  if (this.injector != null) {
    throw new ConfigurationException(Collections.singletonList(new Message(FactoryProvider2.class,"Factories.create() factories may only be used in one Injector!")));
  }
  this.injector=injector;
  for (  Method method : returnTypesByMethod.keySet()) {
    Object[] args=new Object[method.getParameterTypes().length];
    Arrays.fill(args,"dummy object for validating Factories");
    getBindingFromNewInjector(method,args);
  }
}

@ Inject void initialize ( Injector injector ) { if ( this . injector != null ) { throw new ConfigurationException ( Collections . singletonList ( new Message ( FactoryProvider2 . class , "Factories.create() factories may only be used in one Injector!" ) ) ) ; } this . injector = injector ; for ( Method method : returnTypesByMethod . keySet ( ) ) { Object [ ] args = new Object [ method . getParameterTypes ( ) . length ] ; Arrays . fill ( args , "dummy object for validating Factories" ) ; getBindingFromNewInjector ( method , args ) ; } }
at injector - creation time , we initialize the invocation handler . at this time we make sure all factory methods will be able to build the target types .
