public static Injector createOverridingInjector(Injector originalInjector, com.google.inject.Module module) {
		final Map<Key<?>, Binding<?>> bindings = originalInjector.getBindings();
		return Guice.createInjector(Modules2.mixin((binder) -> {
			for(Binding<?> binding: bindings.values()) {
				final Type typeLiteral = binding.getKey().getTypeLiteral().getType();
				if (typeLiteral != null) {
					final String typeName = typeLiteral.getTypeName();
					if (isValid(typeName)) {
						binding.applyTo(binder);
					}
				}
			}
		}
public static Injector createOverridingInjector ( Injector originalInjector , com . google . inject . Module module ) { final Map < Key < ? > , Binding < ? > > bindings = originalInjector . getBindings ( ) ; return Guice . createInjector ( Modules2 . mixin ( ( binder ) -> { for ( Binding < ? > binding : bindings . values ( ) ) { final Type typeLiteral = binding . getKey ( ) . getTypeLiteral ( ) . getType ( ) ; if ( typeLiteral != null ) { final String typeName = typeLiteral . getTypeName ( ) ; if ( isValid ( typeName ) ) { binding . applyTo ( binder ) ; } } } }
Create an injector that override the given injectors with the modules.

@param originalInjector the original injector.
@param modules the overriding modules.
@return the new injector.