public static Object makeDelegator(Object[] delegates, ClassLoader loader) { Info info = getInfo(delegates); Object[] remapped = new Object[info.interfaces.length]; for (int i = 0; i < remapped.length; i++) { remapped[i] = delegates[info.indexes[i]]; } return makeDelegatorHelper(info.key, info.interfaces, remapped, loader, false);
public static Object makeDelegator(Class[] interfaces, Object[] delegates, ClassLoader loader) { return makeDelegatorHelper(keyFactory.newInstance(interfaces), interfaces, delegates, loader, false);
    public static Object makeDelegator(Object[] delegates, ClassLoader loader) {        Info info = getInfo(delegates);        Object[] remapped = new Object[info.interfaces.length];        for (int i = 0; i < remapped.length; i++) {            remapped[i] = delegates[info.indexes[i]];        }        return makeDelegatorHelper(info.key, info.interfaces, remapped, loader, false);    }