@Override
    public <T> T getAfterOrThrow(Class<T> type, T before) {
        return getAfter(type, before).orElseThrow(() ->
            new IllegalArgumentException("A component after " + before + " of type " + type.getName() + " could not be found. Components of type " + type.getSimpleName() + ": " + stream(type).map(Object::getClass).map(Class::getSimpleName).collect(Collectors.joining(", ")))
        );
    }
Create a new {@link InjectorBuilder} using the default implementation but
with a specific {@code ClassLoader}.

@param classLoader the class loader to use
@return the injector builder
common-parent/injector/src/main/java/com/speedment/common/injector/internal/InjectorImpl.java